- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 第7章 图 7.1 图的基本概念 7.1.2 图的基本术语 7.2 图的存储表示 3、讨论:邻接表与邻接矩阵有什么异同之处? 7.2.4 图的存储结构的建立 /* 图的邻接矩阵存储结构创建算法 */ Mgraph createMgraph( ) { Mgraph G; int i,j,k,code,w; char ch; printf(“输入图的顶点数,边数:”); scanf(“%d,%d”,G.vexnum,G.arcnum); printf(“.\n输入所建立图的图形代码code(1表示无向图,2表示有向图,3表示无向网,4表示有向网) ”); scanf(“%d”,code); for(i=1;i=G.vexnum;i++) { printf(“ \n输入第%d个顶点信息 ”,I ); scanf(“%c”,G.vexs[i]); } /*for*/ switch(code) { case 1: for(i=1;i=G.vexnum;i++) /* 初始化邻接矩阵中元素为0 */ for(j=1;j=G.vexnum;j++) G.arcs[i][j]=0; for(k=1;k=G.arcnum;k++) { printf(“ \n输入第%d条边的始点,终点:”,k ); case 2: for(i=1,i=G.vexnum;i++) for(j=1;j=G.vexnum;j++) G.arcs[i][j]=0; for(k=1;k=G.arcnum;k++) { printf(“ \n输入第%d条弧的始点,终点:”,k ); scanf(“%d,%d”,i,j); G.arcs[i][j]=1; } /* for */ break; scanf(“%d,%d”,i,j); G.arcs[i][j]=G.arcs[j][i]=1; } /*for*/ break; case 3: for(i=1,i=G.vexnum;i++) /* 初始化主对角线元素为0,其它元素为∞ */ for(j=1;j=G.vexnum;j++) if(i= =j) G.arcs[i]j]=0; else G.arcs[i][j]=INFINITY; for(k=1;k=G.arcnum;k++) { printf(“ \n输入第%d条边的始点,终点和权:”,k ); scanf(“%d,%d,%d”,i,j,w); G.arcs[i][j]=G.arcs[j][i]=w; } /*for*/ break; case 4: for(i=1,i=G.vexnum;i++) for(j=1;j=G.vexnum;j++) if(i= =j) G.arcs[i]j]=0; else G.arcs[i][j]=INFINITY; for(k=1;k=G.arcnum;k++) { 数据结构 *《计算机网络》课件 制作人:谢希仁 7.1 图 7.2 图的存储结构 7.3 图的实现 7.4 图的遍历 7.5 最小生成树 7.6 最短路径 7.1.1 图的定义及运算 一、图的定义: 图(graph)是由两个集合V和E所限定的一种数据结构,记作 G=(V,E) 其中:V是构成图的顶点的非空有限集, E是表示顶点之间关系的边的集合。 1 2 3
文档评论(0)