关于拓扑排序第一种实现

来源:13-7 拓扑排序算法的实现

martin123_

2019-10-18

请问第一种实现的判断环是否也可以写在循环内?就是当遍历到邻点入度为0时,说明有环存在。

while(!queue.isEmpty()){
            int w = queue.remove();
            result.add(w);
            for(int v: G.adj(w)){
                if(indegree[v] == 0){
                    hasCycle = true;
                    break;
                }else{
                    indegree[v] --;
                    if(indegree[v] == 0)
                        queue.add(v);
                }
            }
            if(hasCycle)
                break;
        }
写回答

1回答

liuyubobobo

2019-10-18

如果你能从 w 遍历到 v, 那么 v 的入度就不可能为 0。w-v 这条边肯定进 v 了。


继续加油!:) 

1
9
liuyubobobo
回复
martin123_
不要说自己蠢。正常的。我最初学算法的时候比你还蠢。进步就发生在这个过程中。加油!:)
2019-10-18
共9条回复

玩转算法系列--图论精讲(Java版)

30+小时系统学习,bobo带你克服被图论支配的恐惧

1599 学习 · 330 问题

查看课程