(可修改)数据结构图结构_(动态PPT).ppt

  1. 1、本文档共141页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 10 12 5 0 4 6 1 3 2 28 10 25 14 24 22 16 18 12 5 0 4 6 1 3 2 5 0 4 6 1 3 2 10 14 12 原图 (c) (d) 5 0 4 6 1 3 2 10 14 16 12 (e) (f) (g) 5 0 4 6 1 3 2 10 14 22 16 12 5 0 4 6 1 2 10 25 14 22 16 12 3 ...... * 为实现克鲁斯卡尔算法需要设置一维辅助数组E,按权值从小到大的顺序存放图的边,数组的下标取值从0到e-1(e为图G边的数目)。 了解----假设数组E存放图G中的所有边,且边已按权值从小到大的顺序排列。n为图G的顶点个数,e为图G的边数。克鲁斯卡尔算法如下: #define MAXE 最大边数 #define MAXV 最大顶点数 typedef struct { int vex1; //边的起始顶点 int vex2; //边的终止顶点 int weight; //边的权值 }Edge; ...... * Void kruskal(Edge E[],int n,int e) { int i,j,m1,m2,sn1,sn2,k; int vset[MAXV]; for(i=0;in;i++) //初始化辅助数组 vset[i]=i; k=1; //表示当前构造最小生成树的第k条边,初值为1 j=0; //E中边的下标,初值为0 while(ke) //生成的边数小于e时继续循环 { ml=E[j].vex1;m2=E[j].vex2; //取一条边的两个邻接点 sn1=vset[m1];sn2=vset[m2]; //分别得到两个顶点所属的集合编号 if(sn1!=sn2) //两顶点分属于不同的集合,该边是最小生成树的一条边 ...... * { printf(“(m1,m2):%d\n”,E[j].weight); k++; //生成边数增l for(i=0;in;i++) //两个集合统一编号 if (vset[i]=i ) //集合编号为sn2的改为sn1 vset[i]=sn1; } j++; //扫描下一条边 } } 如果给定带权无向连通图G有e条边,且边已经按权值递增的次序存放在数组E中,则用克鲁斯卡尔算法构造最小生成树的时间复杂度为O(e)。克鲁斯卡尔算法的时间复杂度与边数e有关,该算法适合于求边数较少的带权无向连通图的最小生成树。 ...... * 7.5有向无环图及其应用 1、有向无环图的定义 有向无环图是描述一项工程或系统的进行过程的有效工具。 因为几乎所有的工程均可以分为若干个称为活动的子工程,而这些子工程之间,通常受着一定条件的约束,如其中某些子工程的开始必须在另一些子工程完成之后。 因此对整个工程和系统而言,最为关心的两个问题: 一是工程能否顺利进行; 二是估算整个工程完成所必须的最短时间。 对应于有向图,即是探讨拓扑排序和关键路径问题。 ...... * 一个无环的有向图称作有向无环图(Directid Acycline Gragp)称为DAG图。 有向无环图是描述一项工程或系统的进行过程的有效工具 ...... * 课程代号 课程名称 先修棵 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 无 C1 C1,C2 C1 C3,C4 C11

文档评论(0)

liuhan98 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档