图课件.pptVIP

  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文档。上传文档
查看更多
图课件

假设N=(V, {E})是连通网,TE是N上最小生成树边集合。 (1) U={u0}(u0属于V), TE={ } (2) 在所有u?U,v?V-U的边(u,v)?E 中找一条代 价最小的边(u0,v0)并入集合TE, 同时v0并入U, (3) 如果U≠V,转(2) (直到U=V为止) 最后:TE中必有n-1条边,则T=(V,{TE})为N的最 小生成树。 普里姆(Prim)算法 V3 V1 V4 V6 V5 V2 6 6 6 5 5 5 1 3 2 4 V3 V1 V4 V6 V5 V2 普里姆算法构造最小生成树的过程 V3 V1 V4 V6 V5 V2 V3 V1 V4 V6 V5 V2 U V-U TE V3 V1 V4 V6 V5 V2 (v1,v3), (v3,v6), (v6,v4), (v3,v2), (v2,v5) 为实现此算法需设置辅助数组closedge ,对当前V-U中每个顶点,记录从U到V-U的代价最小的边: struct { VertexType adjvex; // U集中的顶点序号 VRType lowcost; // 边的权值 } closedge[MAX_VERTEX_NUM]; i a b c d e g f 19 5 14 18 27 16 8 21 3 12 7 a a a 19 14 18 14 例如: e 12 e e 8 16 8 d 3 d d 7 21 3 c 5 5 16 e 21 e d c b a g f a b c d e f g 所得生成树权值和= 14+8+3+5+16+21 = 67 a b c d e f g 0 1 2 3 4 5 6 ∞ 19 ∞ ∞ 14 ∞ 18 19 ∞ 5 7 12 ∞ ∞ ∞ 5 ∞ 3 ∞ ∞ ∞ ∞ 7 3 ∞ 8 21 ∞ 12 ∞ 8 ∞ ∞ 16 ∞ ∞ ∞ 21 ∞ ∞ 27 18 ∞ ∞ ∞ 16 27 ∞ 普里姆算法 算法7.9 void MiniSpantree_PRIM( mgraph G, VertexType u ) { k=LocateVex(G,u); for (j=0; jG.vexnum; ++j) //辅助数组初始化 if(j!=k) closedge[j]={ u, G.arcs[k][j].adj }; closedge[k].lowcost=0; // 起始点u并入U(={u}) for (i=1; iG.vexnum; ++i) { // 选择其余的n-1个顶点 k=mininum(closedge); //求下一个顶点:第k顶点printf(closedge[k].adjvex, G. vexs[k]) // 输出生成树的边closedge[k].lowcost=0; //第k顶点并入U for (j=0; jG.vexnum; ++j) // 新顶点并入后重新选择最小边 if(G.arcs[k][j].adj closedge[j].lowcost) closedge[j]={G.vexs[k], G.arcs[k][j].adj } } } 具体做法: 先构造一个只含 n 个顶点的子图 SG,然后从权值最小的边开始,若它的添加不使SG 中产生回路,则在 SG 上加上这条边,如此重复,直至加上 n-1 条边为止。 考虑问题的出发点: 为使生成树上边的权值之和达到最小,则应使生成树中每一条边的权值尽可能地小。 克鲁斯卡尔算法的基本思想: a b c d e g f 19 5 14 18 16 8 21 3 12 7 27 14 8 5 3 16 21 例如: 7 12 18 19 c d b a e g f 27 Prim算法示意图 Kruskal算法示意图 用两种算法求该网的最小生成树 Prim算法从顶点1开始 7.5 有向无环图及其应用 Directed Acycline Graph--DAG 有向树 DAG图 a 有向图 应用一: 描述含

文档评论(0)

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

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

1亿VIP精品文档

相关文档