【数据结构与数据库-实验报告】图的遍历(深度和广度).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《【数据结构与数据库-实验报告】图的遍历(深度和广度).pdf》由会员分享,可在线阅读,更多相关《【数据结构与数据库-实验报告】图的遍历(深度和广度).pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、版权归原作者 Amber 所有1/16数据结构与数据库数据结构与数据库实验报告实验报告题题目目图的遍历(深/广度)院院系系化学物理系姓姓名名*学学号号*指导老师指导老师司 虎提交时间提交时间2011 年 12 月 5 日 星期三版权归原作者 Amber 所有2/16一一 实验内容1、图的深度优先搜索(DFS)和广度优先搜索(BFS)。2、图的最小生成树和最短路径(选作)。二 目的与要求1、掌握 DFS 和 BFS 原理,并用 DFS 和 BFS 打印图的顶点信息。2、掌握图的最小生成树算法和最短路径算法。三 实验算法本程序要点在于运用队列实现图的创建及遍历。1、队列及结点的定义typedef
2、structint*base;int front;int rear;SqQueue;void InitQueue(SqQueue&Q)Q.base=(int*)malloc(sizeof(int)*MAXQSIZE);if(!Q.base)printf(ERROR!n);Q.front=Q.rear=0;版权归原作者 Amber 所有3/16void EnQueue(SqQueue&Q,int e)if(Q.front=(Q.rear+1)%(MAXQSIZE)printf(队满!n);return;Q.baseQ.rear=e;Q.rear=(Q.rear+1)%MAXQSIZE;void
3、DeQueue(SqQueue&Q,int&e)if(Q.rear=Q.front)printf(队是空的n);return;e=Q.baseQ.front;Q.front=(Q.front+1)%(MAXQSIZE);int EmptyQueue(SqQueue Q)return Q.front=Q.rear?1:0;#define max_n 20typedef struct ArcNodeint adjvex;struct ArcNode*nextarc;ArcNode;typedef struct VNode版权归原作者 Amber 所有4/16int data;ArcNode*fir
4、starc;VNode,AdjListmax_n;typedef structAdjList vertices;int vexnum,arcnum;int kind;ALGraph;2、创建图图的类型“2”,代表无向图。类型,顶点数,边数用逗号隔开。顶点,边的偶对均为输入一组,按回车建。void CreateGraph(ALGraph&G)int k,i,j;int vi,vj;ArcNode*p;printf(请输入类型,顶点数,边数:);scanf(%d,%d,%d,&G.kind,&G.vexnum,&G.arcnum);printf(请输入顶点:);for(k=0;kG.vexnum;
5、k+)scanf(%d,&G.verticesk.data);G.verticesk.firstarc=NULL;版权归原作者 Amber 所有5/16printf(请输入边的偶对:n);for(k=0;kadjvex=j;p-nextarc=G.verticesi.firstarc;G.verticesi.firstarc=p;if(G.kind=AG)p=(ArcNode*)malloc(sizeof(ArcNode);p-adjvex=i;p-nextarc=G.verticesj.firstarc;G.verticesj.firstarc=p;3、打印图void PrintGraph(
6、ALGraph G)int i;ArcNode*p;for(i=0;iadjvex);p=p-nextarc;while(p!=NULL);printf(n);4、深度优先序列void DFS(ALGraph G,int v)/*深度优先序列*/ArcNode*p;visite(G.verticesv.data);visitedv=TRUE;for(p=G.verticesv.firstarc;p!=NULL;p=p-nextarc)if(!visitedp-adjvex)DFS(G,p-adjvex);5、广度优先序列void BFS(ALGraph G)/*广度优先序列*/int v,u,
7、w;SqQueue Q;for(v=0;vG.vexnum;v+)visitedv=FALSE;InitQueue(Q);for(v=0;v=0;w=NextAdjVex(G,u,w)if(!visitedw)visite(w);visitedw=TRUE;EnQueue(Q,w);6、主函数void main()ALGraph G;CreateGraph(G);PrintGraph(G);printf(输出深度优先序列:n);DFS(G,0);printf(输出广度优先序列:n);BFS(G);四 程序结构1、数据结构版权归原作者 Amber 所有8/16typedef struct/队列i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构与数据库-实验报告 数据结构 数据库 实验 报告 遍历 深度 广度
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内