C语言版图的深度和广度优先遍历源代码(共6页).doc
![资源得分’ 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)
《C语言版图的深度和广度优先遍历源代码(共6页).doc》由会员分享,可在线阅读,更多相关《C语言版图的深度和广度优先遍历源代码(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上表示的图:#includestdio.h#includestdlib.h#define MaxVertexNum 50 /定义最大顶点数typedef struct node /边表结点int adjvex; /邻接点域struct node *next; /链域EdgeNode;typedef struct vnode /顶点表结点char vertex; /顶点域EdgeNode *firstedge; /边表头指针VertexNode;typedef VertexNode AdjListMaxVertexNum; /AdjList是邻接表类型typedef st
2、ruct AdjList adjlist; /邻接表int n,e; /图中当前顶点数和边数 ALGraph; /图类型/=建立图的邻接表=void CreatALGraph(ALGraph *G)int i,j,k;char a;EdgeNode *s; /定义边表结点printf(Input VertexNum(n) and EdgesNum(e): );scanf(%d,%d,&G-n,&G-e); /读入顶点数和边数fflush(stdin); /清空内存缓冲printf(Input Vertex string:);for(i=0;in;i+) /建立边表scanf(%c,&a);G-
3、adjlisti.vertex=a; /读入顶点信息G-adjlisti.firstedge=NULL; /边表置为空表printf(Input edges,Creat Adjacency Listn);for(k=0;ke;k+) /建立边表 scanf(%d%d,&i,&j); /读入边(Vi,Vj)的顶点对序号s=(EdgeNode *)malloc(sizeof(EdgeNode); /生成边表结点s-adjvex=j; /邻接点序号为js-next=G-adjlisti.firstedge;G-adjlisti.firstedge=s; /将新结点*S插入顶点Vi的边表头部s=(Ed
4、geNode *)malloc(sizeof(EdgeNode); s-adjvex=i; /邻接点序号为is-next=G-adjlistj.firstedge; G-adjlistj.firstedge=s; /将新结点*S插入顶点Vj的边表头部/=定义标志,为=typedef enumFALSE,TRUE Boolean;Boolean visitedMaxVertexNum;/=DFS:的=void DFSM(ALGraph *G,int i)/以Vi为出发点对邻接表示的图G进行DFS搜索EdgeNode *p;printf(%c,G-adjlisti.vertex); /访问顶点Vi
5、visitedi=TRUE; /标记Vi已访问p=G-adjlisti.firstedge; /取Vi边表的头指针while(p) /依次搜索Vi的邻接点Vj,这里j=p-adjvexif(! visitedp-adjvex) /若Vj尚未被访问DFSM(G,p-adjvex); /则以Vj为出发点向纵深搜索p=p-next; /找Vi的下一个邻接点void DFS(ALGraph *G)int i;for(i=0;in;i+)visitedi=FALSE; /标志向量初始化for(i=0;in;i+)if(!visitedi) /Vi未访问过 DFSM(G,i); /以Vi为源点开始DFS搜
6、索 /=BFS:=void BFS(ALGraph *G,int k) /以Vk为源点对用邻接链表表示的图G进行int i,f=0,r=0; EdgeNode *p; int cqMaxVertexNum; /定义FIFO队列 for(i=0;in;i+)visitedi=FALSE; /标志向量初始化for(i=0;in;i+)cqi=-1; /初始化标志向量printf(%c,G-adjlistk.vertex); /访问源点Vkvisitedk=TRUE;cqr=k; /Vk已访问,将其入队。注意,实际上是将其序号入队 while(cqf!=-1) / 队列非空则执行i=cqf; f=f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 版图 深度 广度 优先 遍历 源代码
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内