- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
由广度优先遍历得到的生成树称为广度优先生成树.PPT
* 假设有向图G=(V,E)采用邻接矩阵cost存储,另外设置一个二维数组A用于存放当前顶点之间的最短路径长度,分量A[i][j]表示当前顶点vi到顶点vj的最短路径长度。 弗洛伊德算法的基本思想: 递推产生一个矩阵序列A0,A1,…,Ak,…,An 其中Ak[i][j]表示从顶点vi到顶点vj的路径上所经过的顶点编号不大于k的最短路径长度。 初始时,有A-1[i][j]=cost[i][j] * 当求从顶点vi到顶点vj的路径上所经过的顶点编号不大于k+1的最短路径长度时,要分两种情况考虑: 一种情况是该路径不经过顶点编号为k+1的顶点,此时该路径长度与从顶点vi到顶点vj的路径上所经过的顶点编号不大于k的最短路径长度相同; 另一种情况是从顶点vi到顶点vj的最短路径上经过编号为k+1的顶点。 * Ak+1[i,j]=MIN(Ak[i,j],Ak[i,k+1]+Ak[k+1,j] * 该路径可分为两段: (1) 从顶点vi到顶点vk+1的最短路径; (2) 从顶点vk+1到顶点vj的最短路径。 此时最短路径长度等于这两段路径长度之和。这两种情况中的较小值,就是所要求的从顶点vi到顶点vj的路径上所经过的顶点编号不大于k+1的最短路径。 弗洛伊德思想可用如下的表达式来描述: A-1[i][j]=cost[i][j] Ak+1[i][j]=MIN{ Ak[i][j], Ak[i][k+1]+Ak[k+1][j] } (0≤k≤n-1) * 设G=(V,E)是一个具有n个顶点的有向图,V中顶点序列v1,v2,…,vn称为一个拓扑序列,当且仅当该顶点序列满足下列条件: 若vi,vj是图中的边(即从顶点vi到vj有一条路径),则在序列中顶点vi必须排在顶点vj之前。 在一个有向图中找一个拓扑序列的过程称为拓扑排序。 对有向图进行拓扑排序,可检查有向图中是否存在回路。 8.6 拓扑排序 * 课程代号 课程名称 先修课程 C1 高等数学 无 C2 程序设计 无 C3 离散数学 C1 C4 数据结构 C2,C3 C5 编译原理 C2,C4 C6 操作系统 C4,C7 C7 计算机组成原理 C2 例如,计算机专业的学生必须完成一系列规定的基础课和专业课才能毕业。 课程之间的先后关系 可用有向图表示: 拓扑序列1:C1-C3-C2-C4-C7-C6-C5 拓扑序列2:C2-C7-C1-C3-C4-C5-C6 按照任何一个拓扑序列都可以顺序地进行课程学习。 * 拓扑排序方法如下: (1) 从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它。 (2) 从网中删去该顶点,并且删去从该顶点发出的全部有向边。 (3) 重复上述两步,直到剩余的网中不再存在没有前驱的顶点为止。若此时网不空,表明网中有环。 * a b c g h d f e a b h c d g f e 一个AOV-网的拓扑排序 * 为了实现拓扑排序的算法,对于给定的有向图,采用邻接表作为存储结构,为每个顶点设立一个链表,每个链表有一个表头结点,表头结点中增加一个存放顶点入度的域count。 即将邻接表定义中的VNode类型修改如下: typedef struct /*表头结点类型*/ { Vertex data; /*顶点信息*/ int count; /*存放顶点入度*/ ArcNode *firstarc; /*指向第一条弧*/ } VNode; * void TopSort(ALGragh *G) { int i,j;int St[MAXV],top=-1; /*栈St的指针为top*/ ArcNode *p; for (i=0;iG-n;i++) G-adjlist[i].count=0; for (i=0;iG-n;i++) { p=G-adjlist[i].firstarc; while(p!=NULL) { G-adjlist[p-adjvex].count++; p=p-nextarc; } } for (i=0;iG-n;i++) if (G-adjlist[i].count==0) /*
您可能关注的文档
最近下载
- 2023中国出版集团公司集团总部招聘10人笔试备考试题及答案解析.docx VIP
- 放射医学主治医师《基础知识》考前点题卷一(精选).docx VIP
- 小学语文阅读策略对比研究教学研究课题报告.docx
- 给水排水管道工程施工及验收规范.pdf VIP
- 工程机械公司薪资方案(3篇).docx VIP
- 导学案 综合与实践 设计学校田径运动会比赛场地 2025-2026学年人教版数学七年级上册.docx VIP
- 神经内科实习生入科宣教 PPT.pptx VIP
- 混凝土结构施工图识读项目板平法.ppt VIP
- 调度运行-调度自动化系统(EMS系统)应用.ppt VIP
- 放射医学主治医师《专业实践能力》考前点题卷二(精选).docx VIP
原创力文档


文档评论(0)