2017-04-06  本文已影响0人  cybersword

环和有向无环图

1. 概念

2. 有向环的检测问题

思路:深度优先搜索或广度优先搜索,遍历顶点,遇到顶点被标记过则有向图存在环


图片

代码实现:

public class DirecttedCycle
{
    private boolean[] marked;   //标记数组
    private int[] edgeTo;            //从起点到一个顶点的已知路径上的最后一个顶点
    private Stack<Integer> cycle;   // 有向环的所有顶点
    private boolean[] onstack;         // 遍历的所有顶点?
    public DirectedCycle(Digraph G)
    {
        onstack = new boolean[G.V()];
        edgeTo = new int[G.V()];
        marked = new boolean[G.V()];
        for(int v = 0; v < G.V(); v++)
        {
        if(!marked[v]) dfs(G, v);
        }      
   }
   private void dfs(Digraph G, int v)
   {
   }
    
}
上一篇下一篇

猜你喜欢

热点阅读