码迷,mamicode.com
首页 > 其他好文 > 详细

拓拔排序算法

时间:2014-07-23 13:15:06      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:style   color   strong   问题   c   div   

一、定义

拓扑排序是对有向无回路图(DAG)顶点的一种排序,它使得如果存在从u到v的有向路径,那么满足序列中u在v前。
例如:来自于某牛)
bubuko.com,布布扣
最后变成
bubuko.com,布布扣
所以我们的算法可以描述为这样一个过程:
1、找到整个图中所有的原点,将这些点压进队列(栈)中
2、从队列(栈)中取出一点,输出,将该点及它的边删除,找到它所指向的点,如果改点是一个原点(删除指向它的点后),则压入队列(栈)
3、重复2过程,直到它为空
应用:
1、判断有向图中是否存在回路。如果无法构成拓扑序列,那么图中存在环。
2、如果一个事件有拓扑关系(比如时间先后、重要程度),那么可以给出一种可行方案。
3、给一个图确定拓扑关系,也就是为图的DP划分阶段。在关键路径中应用比较明显。
4、2-Sat问题中给顶点染色


拓拔排序算法,布布扣,bubuko.com

拓拔排序算法

标签:style   color   strong   问题   c   div   

原文地址:http://blog.csdn.net/u012313382/article/details/38058439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!