电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

无向图的深度优先和广度优先遍历

无向图的深度优先和广度优先遍历_第1页
1/7
无向图的深度优先和广度优先遍历_第2页
2/7
无向图的深度优先和广度优先遍历_第3页
3/7
#define M 20 #include "stdio.h" #include "stdlib.h" #include "malloc.h" typedef struct{/*定义图*/ int V[M]; int R[M][M]; int vexnum; }Graph; void creatgraph(Graph *g,int n){/*创建图*/ int i,j,r1,r2; g->vexnum=n; for(i=1;i<=n;i++)/*顶点用i 表示*/ { g->V[i]=i; } for(i=1;i<=n;i++)/*初始化R*/ for(j=1;j<=n;j++) { g->R[i][j]=0; } printf("Please input R(0,0 END):\n");/*输入R*/ scanf("%d,%d",&r1,&r2); while(r1!=0&&r2!=0) { g->R[r1][r2]=1; g->R[r2][r1]=1; scanf("%d,%d",&r1,&r2); } } void printgraph(Graph *g){/*打印图的邻接矩阵*/ int i,j; for(i=1;i<=g->vexnum;i++) { for(j=1;j<=g->vexnum;j++) { printf("%2d ",g->R[i][j]); } printf("\n"); } } int visited[M];/*全局变量:访问标志数组*/ void visitvex(Graph *g,int vex){/*访问顶点*/ printf("%d ",g->V[vex]); } int firstadjvex(Graph *g,int vex){/*获取第一个未被访问的邻接节点*/ int w,i; for(i=1;i<=g->vexnum;i++) { if(g->R[vex][i]==1&&visited[i]==0) { w=i; break; } else { w=0; } } return w; } int nextadjvex(Graph *g,int vex,int w){/*获取下一个未被访问的邻接节点*/ int t; t=firstadjvex(g,w); return t; } void DFS(Graph *g,int vex){/*深度递归遍历*/ int w; visited[vex]=1; visitvex(g,vex); for(w=firstadjvex(g,vex);w>0;w=nextadjvex(g,vex,w)) if(!visited[w]) { DFS(g,w); } } void DFSTraverse(Graph *g){/*深度遍历*/ int i; for(i=1;i<=g->vexnum;i++) visited[i]=0; for(i=1;i<=g->vexnum;i++) if(!visited[i]) { DFS(g,i); } } typedef struct{/*定义队列*/ int V[M]; int front; int rear; }Queue; void Initqueue(Queue *q){/*初始化队列*/ q->front=0; q->rear=0; } int Quempty(Queue *q){/*判断队列是否为空*/ if(q->front==q->rear) { return 0; } else { return 1; } } Enqueue(Queue *q,int e){/*入队操作*/ if((q->rear+1)%M==q->front) { printf("The queue is overflow!\n"); return 0; } else { q->V[q->rear]=e; q->rear=(q->rear+1)%M; return 1; } } Dequeue(Queue *q){/*出队操作*/ int t; if(q->fro...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

无向图的深度优先和广度优先遍历

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部