无向图建立、深度优先遍历和广度优先遍历实现算法

上传人:小*** 文档编号:166561330 上传时间:2022-11-01 格式:DOC 页数:4 大小:24KB
返回 下载 相关 举报
无向图建立、深度优先遍历和广度优先遍历实现算法_第1页
第1页 / 共4页
无向图建立、深度优先遍历和广度优先遍历实现算法_第2页
第2页 / 共4页
无向图建立、深度优先遍历和广度优先遍历实现算法_第3页
第3页 / 共4页
点击查看更多>>
资源描述
数据结构中关于无向图建立、深度优先遍历和广度优先遍历实现算法2011-03-1614:29#include#includeusingnamespacestd;#defineMaxVertexNum100typedefcharVertexType;typedefintEdgeType;typedefintDatatype;typedefstructVertexTypevexsMaxVertexNum;EdgeTypeedgeMaxVertexNumMaxVertexNum;intn,e;MGragh;typedefstructqueuenodeDatatypedata;structqueuenode*next;QueueNode;typedefstructQueueNode*front;QueueNode*rear;LinkQueue;voidInitQueue(LinkQueue*Q)Q-front=Q-rear=NULL;intQueueEmpty(LinkQueue*Q)returnQ-front=NULL&Q-rear=NULL;voidEnQueue(LinkQueue*Q,Datatypex)QueueNode*p=(QueueNode*)malloc(sizeof(QueueNode);p-data=x;p-next=NULL;if(QueueEmpty(Q)Q-front=Q-rear=p;elseQ-rear-next=p;Q-rear=p;DatatypeDeQueue(LinkQueue*Q)Datatypex;QueueNode*p;if(QueueEmpty(Q)printf(QueueEmpty);p=Q-front;x=p-data;Q-front=p-next;if(Q-rear=p)Q-rear=NULL;free(p);returnx;intvisitedMaxVertexNum;voidDFS(MGragh*G,inti);MGragh*CreateMGraph(MGragh*G)inti,j,k,w;*G=(MGragh*)malloc(sizeof(MGragh);printf(请输入顶点数和边数:);scanf(%d%d,&(*G)-n),&(*G)-e);fflush(stdin);printf(请输入顶点值:(中间不要有空格如:ABCDEF)n);for(i=0;in;i+)(*G)-vexsi=getchar();for(i=0;in;i+)for(j=0;jn;j+)(*G)-edgeij=0;fflush(stdin);printf(请输入(Vi,Vj)上的权w:n);for(k=0;ke;k+)scanf(%d%d%d,&i,&j,&w);(*G)-edgeij=w;(*G)-edgeji=w;return*G;voidDisMGraph(MGragh*G)inti,j;for(i=0;in;i+)printf(t);for(j=0;jn;j+)printf(%dt,G-edgeij);printf(n);voidDFSTraverse(MGragh*G,intk)/深度优先遍历inti;for(i=0;in;i+)visitedi=0;DFS(G,k);for(i=0;in;i+)if(!visitedi)DFS(G,i);voidDFS(MGragh*G,inti)coutvisitvertex:vexsiendl;visitedi=1;for(intj=0;jn;j+)if(G-edgeij&!visitedj)DFS(G,j);voidBFS(MGragh*G,intk)inti,j,t;LinkQueueQ;InitQueue(&Q);for(t=0;tn;t+)visitedt=0;printf(visitvertex:%cn,G-vexsk);visitedk=1;EnQueue(&Q,k);while(!QueueEmpty(&Q)i=DeQueue(&Q);for(j=0;jn;j+)if(G-edgeij&!visitedj)printf(visitvertex:%cn,G-vexsj);visitedj=1;EnQueue(&Q,j);voidmain()MGragh*G=NULL,*P=NULL;inti;P=CreateMGraph(&G);DisMGraph(P);printf(请输入要遍历的顶点编号:);scanf(%d,&i);printf(深度优先遍历顺序是:n);DFSTraverse(P,i);printf(广度优先遍历顺序是:n);BFS(P,i);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!