Poj1094拓扑排序总结

本文介绍了一种使用深度优先搜索(DFS)进行拓扑排序的方法,并通过该方法检查图中是否存在环路。该算法利用DFS产生的深度遍历树的特性,在访问顶点时进行标记,以此来识别环路。此外,还提到了另一种利用顶点度数进行拓扑排序的方法。
摘要由CSDN通过智能技术生成

   这道题目不是什么难题,但是我做了蛮长时间。主要是刚开始会有各种困难。

   算法其实不难,就是先拓扑排序,排序过程中可以检查环路,没有环路之后检查排序节点是否都依次相连。拓扑排序与回路判断的算法:可以用DFS,在顶点第一次被访问时标记(1),其下顶点都被访问后再次标记(-1),并且将其“退栈顺序”记录下来,退栈顺序就是拓扑序,而访问过程中遇到标记为1的顶点就说明有回路。这个算法利用了DFS产生的深度遍历树的性质,深度优先树真是一棵神奇的树啊。有一个缺陷是,我现在还没办法不用递归来实现这个算法,也就是用栈还没办法实现。利用度的标记。这一算法非常简单明了,但算法复杂度比DFS高。本题采用这一算法可以在短时间内AC。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值