用DFS解拓扑排序

本文通过一个无环有向图实例,详细解释如何使用深度优先搜索(DFS)进行拓扑排序。首先从任意未访问的节点开始,如节点a,遍历其所有出度节点,如节点b,再继续遍历b的出度节点,直至无法继续。当深度搜索到头时,将节点移出栈并加入排序数组。接着检查栈中剩余节点,重复该过程,直到所有节点都被处理。代码展示了解决问题的具体步骤。
摘要由CSDN通过智能技术生成

这里以一个例子为例:

这是一个无环有向图,求出它是否有拓扑排序。

 思路是:

1.随便挑一个未访问的点入栈,这里以a为例,遍历a的出度的有向边,则遍历到b,再遍历b的出度的有向边,发现没有了。即此时深度搜索到头了,那么把b出栈,并放入t数组尾部.

                    

2.然后栈中只有a了,再找是否还有和 a相连的有向边。发现没有了。那么再次进行步骤1。依次递归下去...

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值