7数据结构实验图答案

7数据结构实验图答案

ID:31628876

大小:68.69 KB

页数:7页

时间:2019-01-16

7数据结构实验图答案_第1页
7数据结构实验图答案_第2页
7数据结构实验图答案_第3页
7数据结构实验图答案_第4页
7数据结构实验图答案_第5页
资源描述:

《7数据结构实验图答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告班级学号实骗室专业姓名计算机号实验名称实验7图的操作成绩评定所用软件VC或TC教师签名实验目的(1)掌握图的存储结构;(2)实现图的邻接矩阵存储。(3)掌握图的遍历方法。实验内容编写实现无向图的深度优先遍历算法,并上机调试运行#include#include#defineMaxVertexNum100〃最大顶点数,应由用户定义typedefcharVertexType;〃顶点类型应由用户定义typedefstructnode{〃边表结点intadjvex;〃邻接点域structnode*next;〃链域〃若要表示边上的权,则

2、应增加一个数据域JEdgeNode;typedefstructvnode{〃顶点表结点VertexTypevertex;〃顶点域EdgeNode*firstedge;〃边表头指针JVertexNode;typedefVertexNodeAdjList[MaxVertexNum];//AdjList是邻接表类型typedefstruct{AdjListadjlist;〃邻接表intn,e;〃图中当前顶点数和边数}ALGraph;〃对于简单的应用,无须定义此类型,可直接使用AdjList类型typedefenum{FALSE,TRUE}Boolean;//FALSE为0,T

3、RUE为1Booleanvisited[MaxVertexNum];〃访问标志向量是全局量voidDFS(ALGraph*G,inti);voidmain(){院(系):信息科学与技术学院课程名称:数据结构口期:voidCreateALGraph(ALGraph*G);voidPrintALGraph(ALGraph*G);voidDFSTraverse(ALGraph*G);ALGraphG;CreateALGraph(&G);PrintALGraph(&G);printfC*深度优先搜索结果:”);DFSTraverse(&G);printfC'Xn");voidC

4、reateALGraph(ALGraph*G){〃建立无向图的邻接表袅示inti,j,k;EdgeNode*s;printf(nW输出顶点数和边数:");scanf(n%d%dM,&G->n,&G->e);〃读入顶点数和边数printfC*请输出顶点信息:");for(i=0;in;i++){〃建立顶点表while((G->adjlist[i].vertex=getchar())==,');//读入顶点信息G->adjlist[i].firstedge=NULL;〃边表置为空表}for(k=0;ke;k+4-){〃建立边表printf("请输出第

5、%€1边的起点、终点:”,k+1);scanf(n%d%dH,&i,&j);〃读入边(vi,vj)的顶点对序号s=(EdgeNode*)malloc(sizeof(EdgeNode));〃生成边表结点s->adjvex=j;〃邻接点序号为js->next=G・>adjlist

6、i

7、.firstedge;G->adjlist[i].firstedge=s;〃将新结点*s插入顶点vi的边表头部s=(EdgeNode*)malloc(sizeof(EdgeNode));s->adjvex=i;〃邻接点序号为is->next=G・>adjlist

8、j

9、.firstedge;G-

10、>adjlist[j].firstedge=s;〃将新结点*s插入顶点vj的边表头部〃打印邻接表:voidPrintALGraph(ALGraph*G){inti;EdgeNode*p;for(i=0;in;i++){printf("%d%c:t",i,G->adjlist[i].vertex);p=G・>adjlist

11、ij.firstedge;while(p){printf("%dtH,p->adjvex);p=p->next;}printf(Hn);voidDFSTraverse(ALGraph*G){〃深度优先遍历以邻接表表示的图Ginti;〃标

12、志向量初始化//vi未访问过〃以vi为源点开始DFS搜索for(i=0;in;i++)visited[i]=FALSE;for(i=0;in;i++)if(!visited[i])DFS(Gi);voidDFS(ALGraph*G,inti){〃以Vi为出发点对邻接表表示的图G进行深度优先搜索EdgeNode*p;printf("%c",G->adjlist[i].vertex);〃访问顶点vivisited[i]=TRUE;〃标记vi已访问p=G->adjlist

13、i].firstedge;〃取vi边表的头指针while

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。