- 9
- 0
- 约小于1千字
- 约 14页
- 2017-05-25 发布于湖北
- 举报
吉林大学数据结构_拓扑排序
拓扑排序;;所谓拓扑序列,就是把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,而顶点却未被全部输出,说明网中有回路,此时算法强制终止拓扑排序。;?;?;?
您可能关注的文档
- 台湾蝴蝶甲天下教学课件黄伯玉.ppt
- 叶绿体中色素的提取说课课件.ppt
- 可能性 人教版五年级上册数学.ppt
- 各个国家的世界之最(组图) 中英文版.pptx
- 台阶轴加工-说课PPT——获奖课件.ppt
- 各大名校历年古代文学考研试题.doc
- 原汁数学的故事.ppt
- 合同翻译(课件)W5.ppt
- 合同翻译1(课件)W2.ppt
- 香丽高速公路JL1驻地办监理规划.doc
- 2022年二级心理咨询师综合试题及答案卷71.docx
- 2022年绍兴职业技术学院教师招聘考试笔试试题及答案.docx
- 湖南省艺术研究院2026年高层次人才招聘2人备考题库及一套完整答案详解.docx
- 江西萍乡中学招聘2026届教育部直属师范大学公费师范毕业生4人备考题库及参考答案详解一套.docx
- 2025-2026学年德惠市四年级数学上学期阶段质量跟踪监视模拟试题含解析.docx
- 2025-2026学年德阳市中江县四年级数学第一学期期中调研模拟试题(含解析).docx
- 2020年注册二级消防工程师《消防安全技术综合能力》试卷(I卷) (附答.docx
- 河南洛阳格力2026届大学生校园招聘备考题库及答案详解(考点梳理).docx
- (2025年)知识应知应会试题75题【附答案】.docx
- 苏州高新区(虎丘区)市场监督管理局公益性岗位招聘1人备考题库及答案详解参考.docx
原创力文档

文档评论(0)