欢迎来到天天文库
浏览记录
ID:38702118
大小:270.50 KB
页数:14页
时间:2019-06-17
《数据结构邻接矩阵,邻接表,图实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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=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、+i;}for(i=0;i5、FSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、rtexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum8、];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph;typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*Queueptr;typedefstruct{Queueptrfront;Queueptr
3、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、+i;}for(i=0;i5、FSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、rtexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum8、];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph;typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*Queueptr;typedefstruct{Queueptrfront;Queueptr
4、+i;}for(i=0;i5、FSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、rtexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum8、];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph;typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*Queueptr;typedefstruct{Queueptrfront;Queueptr
5、FSTraverse(MGraph&G,inti){printf("%c",G.vexs[i]);Visit[i]=true;for(intj=0;j6、}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、rtexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum8、];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph;typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*Queueptr;typedefstruct{Queueptrfront;Queueptr
6、}}}voidmain(){MGraphgraph;CreateUDG(graph);printf("顶点集合为::");for(inti=0;i7、rtexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum8、];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph;typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*Queueptr;typedefstruct{Queueptrfront;Queueptr
7、rtexType;typedefVertexTypeQElemType;boolvisited[MaxVertexNum];typedefstructArcNode{intadjvex;//该弧指向的顶点位置structArcNode*nextarc;//指向下一条弧的指针InfoType*info;}ArcNode;typedefstructVNode{VertexTypedata;//顶点信息ArcNode*firstarc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MaxVertexNum
8、];typedefstruct{AdjListvertices;intvexnum,arcnum;//图的当前顶点数和弧数}ALGraph;typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*Queueptr;typedefstruct{Queueptrfront;Queueptr
此文档下载收益归作者所有