图数据结构实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图数据结构实验报告

一、实验目的与基本要求 1、掌握无向图的概念。 2、掌握用邻接矩阵方法描述图的存储结构。 3、理解并掌握深度优先遍历存储结构。 二、实验环境 硬件:一台微机 软件:操作系统和Visual C++ 6.0 三、实验内容 图的基本运算(图的建立、图的深度遍历) 四、设计: 1.存储结构:栈的链式存储结构。 typedef int adjmatrix[n][n]; typedef char vextype; typedef struct { int vexnum,arcnum;//图的当前顶点数和弧数 int vex[n];//顶点向量 adjmatrix arcs;//邻接矩阵 }graph; 2.功能模块: 用指针变量作为参数实现了链栈的基本运算。 (10)图的建立算法 void creatgraph(graph *g); 建一个graph 类型的g指针,返回建表的情况。 (2)图的输出算法; void print(graph g); 输出图。 (3)图的深度遍历算法 void dfs(graph g,int v) ; void dfsTraverse(graph g); 深度遍历图。 五、调试与测试 调试过程:正常。 (2)程序执行的结果。 六、总结 实验中对于图的存储问题可以使用邻接矩阵存储方法。在对无向图进行深度优先遍历的时候,深刻的理解了程序的实现过程。 七、[源程序清单] #includestdio.h #include string.h #define n 10 #define null 0 typedef int adjmatrix[n][n]; typedef char vextype; typedef struct { int vexnum,arcnum;//图的当前顶点数和弧数 int vex[n];//顶点向量 adjmatrix arcs;//邻接矩阵 }graph; void creatgraph(graph *g) { int i,j; printf(请输入顶点数和边数:); scanf(%d%d,g-vexnum,g-arcnum); for(i=0;in;i++) for (j=0;jn;j++) g-arcs[i][j]=0; while(1) { printf(请输入一条边的两个顶点:\n); scanf(%d%d,i,j); if(i==-1 || j==-1) break; else if(i==j || i=n || j=n) { printf(输入错误,请重新输入!\n); } else { g-arcs[i][j]=1; g-arcs[j][i]=1; } } } void print(graph g) { int i,j; for (i=0;ig.vexnum;i++) { for (j=0;jg.vexnum;j++) printf( %d,g.arcs[i][j]); printf(\n); } printf(\n); } int visited[n]; void dfs(graph g,int v) { int w; visited[v]=1; printf(%d,v);//访问V顶点 for(w=0;wg.vexnum;w++) if(g.arcs[v][w]==1(!visited[w])) dfs(g,w); } void dfsTraverse(graph g) { int v; for (v=0; vg.vexnum; v++) visited[v]=0; for(v=0; vg.vexnum; v++) if (!visited[v]) dfs(g,v); } main() { int k; graph g; creatgraph(g); print(g); printf(\nDfs:); dfsTraverse(g); /* 深度遍历 */ }

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档