int u,w; PseqQueue Q; Q=Init();
printf(\ visited1[v]=True; IN(Q,v); while(!Empty(Q)) { Out(Q,&u); for(p=G.adjlist[u].firstedge;p;p=p->next) { w=p->adjvertex; if(!visited1[w]) { printf(\ visited1[w]=True; IN(Q,w); } } }
} /*BFS*/
/*打印邻接表*/
void PrintfGraphAL(ALGraph *G) {
for (int i = 0; i < G->vertexNum; i++) {
printf(\
EdgeNode *p = G->adjlist[i].firstedge; while (p) {
printf(\→:%d\ p = p->next; } printf(\ } } int main() { ALGraph G; CreatALGraph(&G); printf(\邻接表:\\n\ PrintfGraphAL(&G);
}
printf(\深度优先遍历为:\ DFStraverse(&G);
printf(\广度优先遍历为:\ BFS(G,0);
实验心得:这次实验较以前的实验难度有所加大,必须先理解深度优先和广度优先两种遍历思路,和数据结构中队列的操作,才能看懂礼节代码。同时对图这种数据界都对抽象的能力要求较高,代码不容易看懂,递归思想和非递归算法都要进行深刻的理解,在调试程序时要注意先确认图的建立是否正确,否则后面的遍历会出错。
实验五查找和排序
一、实验目的
掌握运用数据结构两种基本运算查找和排序,并能通过其能解决应用问题。
二、实验要求
1. 认真阅读和掌握本实验的算法。 2. 上机将本算法实现。
3. 保存和打印出程序的运行结果,并结合程序进行分析。
4.上机后,认真整理源程序及其注释,完成实验报告(包括源程序、实验结
果、算法分析、心得体会等)。
三、实验内容
为宿舍管理人员编写一个宿舍管理查询软件, 程序采用交互工作方式,其流 程如下: 开始
建立数据文件
数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、快速等任选一种)
查询菜单: (用二分查找实现以下操作) 1. 按姓名查询 2. 按学号查询 3. 按房号查询 实验代码: #include \
#include \标准库函数*/ #include \字符操作函数*/ #include \#define N 10
typedef struct students
{
char name[10]; char num[10]; int roomnum; }Stud; typedef struct {
Stud student[N]; int Total;//学生总数
}Stu,*st; void display(st S) {
printf(\int i;
printf(\学生信息:\\n\printf(\学生姓名
学生学号
宿舍号\\n\
for(i=1;i<=S->Total;i++) {
ent[i].roomnum);
}
} //输出学生信息
//冒泡法排序按寝室号从小到大 void sort1(st S) {
int i,j,t; char name[10]; char number[10]; for(i=1;i
for(j=i;j<=S->Total;j++)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构实验报告(全)安工大(8)在线全文阅读。
相关推荐: