欢迎来到天天文库
浏览记录
ID:47448040
大小:260.00 KB
页数:25页
时间:2020-01-11
《数据结构邻接矩阵,邻接表,图实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、........实验名称:数据结构实验五实验内容:1.使用邻接矩阵建立一个图,深度遍历。2.使用邻接表建立一个图,广度遍历。3.建立一个图,存储结构自己确定,并进行拓扑排序。实验代码:1.#include"stdio.h"#defineInfinity100#defineMaxVertexNum20typedefenum{DG,DN,UDG,UDN}GraphKind;typedefintVRType;typedefcharVertexType;boolVisit[MaxVertexNum];typedefstructArcCell{
2、VRTypeadj;}ArcCell,AdjMatrix[MaxVertexNum][MaxVertexNum];typedefstruct{VertexTypevexs[MaxVertexNum];AdjMatrixarcs;//邻接矩阵intvexnum,arcnum;//图的当前顶点数和弧数.专业学习资料.........GraphKindkind;}MGraph;intLocateVex(MGraphG,VertexTypev){for(inti=0;i3、i;}if(i=G.vexnum)printf("输入的顶点不合法");return0;}VertexTypev1,v2;VRTypew;voidCreateUDG(MGraph&G){.专业学习资料.........inti,j,k;printf("请输入顶点数:");scanf("%d",&G.vexnum);printf("请输入弧数:");scanf("%d",&G.arcnum);i=0;while(i4、&G.vexs[i]);++i;}for(i=0;i5、i][j];}return;}voidDFSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、Visit[i]){DFSTraverse(G,i);}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、20typedefintInfoType;typedefcharVertexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;.专业学习资料.........typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指8、向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph
3、i;}if(i=G.vexnum)printf("输入的顶点不合法");return0;}VertexTypev1,v2;VRTypew;voidCreateUDG(MGraph&G){.专业学习资料.........inti,j,k;printf("请输入顶点数:");scanf("%d",&G.vexnum);printf("请输入弧数:");scanf("%d",&G.arcnum);i=0;while(i4、&G.vexs[i]);++i;}for(i=0;i5、i][j];}return;}voidDFSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、Visit[i]){DFSTraverse(G,i);}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、20typedefintInfoType;typedefcharVertexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;.专业学习资料.........typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指8、向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph
4、&G.vexs[i]);++i;}for(i=0;i5、i][j];}return;}voidDFSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、Visit[i]){DFSTraverse(G,i);}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、20typedefintInfoType;typedefcharVertexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;.专业学习资料.........typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指8、向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph
5、i][j];}return;}voidDFSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、Visit[i]){DFSTraverse(G,i);}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、20typedefintInfoType;typedefcharVertexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;.专业学习资料.........typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指8、向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph
6、Visit[i]){DFSTraverse(G,i);}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、20typedefintInfoType;typedefcharVertexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;.专业学习资料.........typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指8、向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph
7、20typedefintInfoType;typedefcharVertexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;.专业学习资料.........typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指
8、向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph
此文档下载收益归作者所有