网站大量收购独家精品文档,联系QQ:2885784924

数据结构(牛小飞)3拓扑排序.pptxVIP

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

拓扑排序复习小结和作业拓扑排序

复习图的深度优先有哪些信誉好的足球投注网站:简单路径图的广度优先有哪些信誉好的足球投注网站:最短路径图的遍历方法v1v3v2v5v6v7v4

04拓扑排序方法205练习01问题的引入02拓扑排序的定义03拓扑排序方法1拓扑排序

010203040506070809某学校的部分课程结构java语言数据结构数据库原理软件工程算法分析与设计操作系统软件测试如何制定教学计划?拓扑排序-问题引入

01按照有向图给出的次序关系,将图中顶点排成一个线性序列,对于有向图中没有限定次序关系的顶点,则可以人为加上任意的次序关系。02由此所得顶点的线性序列称之为拓扑有序序列。拓扑排序-定义

拓扑排序是对有向无圈图的顶点的一种排序,使得如果存在一条从vi到vj的路径,那么在排序中vj就出现在vi的后面。显然,如果图中含有圈,那么拓扑排序是不可能的,因为对于圈上的两个顶点v和w,v优先于w同时w又优先于v。拓扑排序-定义

拓扑排序-举例BDAC不能求得它的拓扑有序序列。因为图中存在一个回路{B,C,D}

拓扑排序-举例BDAC可求得拓扑有序序列:ABCD或ACBD拓扑序列不是唯一的。

拓扑排序-举例v1v3v2v5v6v7v4可能的拓扑序列为:v1,v2,v5,v4,v3,v7,v6v1,v2,v5,v4,v7,v3,v6

从有向图中选取一个没有前驱的顶点,并输出;从有向图中删去此顶点以及所有以它为尾的弧;重复上述两步,直至图空,或者图不空但找不到无前驱的顶点为止。010203拓扑排序-方法1

a01.c01.g01.b01.d01.h01.f01.e01.b01.h01.a01.c01.d01.g01.f01.e01.拓扑序列:01.拓扑排序-方法1

拓扑排序-方法11、从有向图中选取一个没有前驱的顶点,并输出;2、从有向图中删去此顶点以及所有以它为尾的弧;3、重复上述两步,直至图空,或者图不空但找不到无前驱的顶点为止。入度为0的顶点弧头顶点的入度减1

拓扑排序-方法1voidtopsort(){for(intcounter=0;counterNUM_VERTICES;counter++){Vertexv=findNewVertexOfIndegreeZero();//寻找一个尚未被分配拓扑编号的入度为0的顶点 if(v==null)//图中有圈 thrownewCycleFoundException();v.topNum=counter;//顶点v的拓扑编号 foreachVertexwadjacenttovw.indegree--;//弧头顶点的入度减1}}

拓扑排序-方法1v1v3v2v5v6v7v4出队前的入度顶点1234567v1v2v3v4v5v6v7入队出队0123132v1012132v210321v50131v4200v3,v7v3v7100v6v1v2v5v4p274,9.2队列和栈是否都能实现拓扑排序??

拓扑排序-方法1voidtopsort()throwsCycleFoundException{QueueVertexq=newQueueVertex();intcounter=0;//对输出顶点计数foreachVertexvif(v.indegree==0)//顶点的入度为0,则入队q.enqueue(v); while(!q.isEmpty(){//如果队列非空………… }if(counter!=NUM_VERTICES)//有圈thrownewCycleFoundException();}

拓扑排序-方法1voidtopsort()throwsCycleFoundException{…….while(!q.isEmpty(){//如果队列非空}…….}Vertexv=q.dequeue();v.topNum=++counter;foreachVertexwadjacenttovif(--w.indegree==0)q.enqueue(

文档评论(0)

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

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

1亿VIP精品文档

相关文档