- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
吉林大学数据结构_拓扑排序
拓扑排序;;所谓拓扑序列,就是把AOV网中的所有顶点排成一个线性序列,该序列满足如下条件:若AOV网中存在边Vi, Vj ,则在该序列中,Vi必位于Vj之前。
构造AOV网的拓扑序列的操作被称为拓扑排序。;?;?;对于任何无回路的AOV网,其顶点均可排成拓扑序列,并且其拓扑序列未必唯一。;拓扑排序算法的基本步骤是:
1)从网中选择一个入度为0的顶点且输出之;
2)从网中删除该顶点及其所有出边;
3)执行(1)(2),直至所有顶点已输出,或网中剩余顶点入度均不为0(说明网中存在回路,无法继续拓扑排序。因此拓扑排序算法可用来判断有向图是否存在回路)。
;我们假定AOV网用邻接表的形式存储。为实现拓扑排序算法,事先需做好两项准备工作:
1)建立一个数组count[ ],count[i]的元素值取对应顶点i的入度;
2)建立一个堆栈,栈中存放入度为0的顶点,当一个顶点的入度为0,就将其压入栈。
;事实上,我们可以不为该顶点栈另外分配存储空间,而是直接利用入度为0的顶点的count[ ]数组元素的值来模拟堆栈的压入和弹出。;(1)设置一个“栈顶指针”top,以指示当前“栈顶”位置(这里的“栈”是模拟的,实际并不存在真正的堆栈);
(2)初始化“栈”时,top值设为-1,表示“栈”空,对应如下语句:
top = -1 ;
(3)当顶点i的入度为0,应该进“栈”时,将“栈顶指针”所指的顶点序号放在count[i]中,并更新“栈顶指针”top,令其指向顶点i :
count[i] = top ; top = i ;
(4)当应该从“栈”中弹出一个顶点时,把原“栈顶”位置记录下来,top退到“次栈顶”。
j = top ; top = count[top] ;
;入度为0的顶点均要被压入“栈”,故每一次“弹出”的顶点(top所指向的顶点)入度都是0,显然,顶点的被弹出次序实际是“栈顶”指针top的变化次序,也就是拓扑排序时顶点的输出次序。
如果“栈顶指针”top值变成-1,而顶点却未被全部输出,说明网中有回路,此时算法强制终止拓扑排序。;?;?;?
您可能关注的文档
最近下载
- 《无人机艺术摄影》课件——项目8 航拍照片的后期处理.ppt VIP
- 新人教版(2024)七年级地理下册第七章第一节《自然环境》大单元教学课件(第2课时).pptx VIP
- 2024-2025学年小学美术四年级下册岭南版(2024)教学设计合集.docx
- 六年级安全教育教案(泰山版).docx VIP
- 2024年(新高考I卷)英语试卷评讲 课件.pptx
- 2025年邵阳职业技术学院单招职业倾向性测试题库及参考答案.docx VIP
- That's Us高清钢琴简谱.pdf
- 2025年中考命题作文押题预测:《我的2024》写作指导+佳作展示.docx VIP
- 教师综合能力测试题.docx VIP
- 2025统编版(2024)小学道德与法治一年级下册教学设计(附目录).docx VIP
文档评论(0)