⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dagtc.java

📁 个人学习图算法时写的源码 包括最小生成树, 最大网络流, DSF遍历, BSF遍历,
💻 JAVA
字号:
package twf.graph.directed;

import twf.adt.graph.AdjList;
import twf.adt.graph.Graph;
import twf.graph.DenseGraph;
import twf.graph.Edge;

public class DagTC {	
	private DenseGraph D;
	private int cnt;
	private int[] pre;
	  void tcR(int w)
	    {
	      pre[w] = cnt++;
	      AdjList A = D.getAdjList(w);
	      for (int t = A.beg(); !A.end(); t = A.nxt())
	      {
	        D.insert(new Edge(w, t));
	        if (pre[t] > pre[w]) continue;
	        if (pre[t] == -1) tcR(t);
	        for (int i = 0; i < D.V(); i++)
	         if (D.edge(t, i)) D.insert(new Edge(w, i));
	       }
	     }
	  public DagTC(Graph G)
	    { cnt = 0;
	      D = GraphUtilities.densecopy(G);
	      pre = new int[G.V()];
	      for (int v = 0; v < D.V(); v++) pre[v] = -1;
	      for (int v = 0; v < D.V(); v++)
	        if (pre[v] == -1) tcR(v);
	    }
	  public boolean reachable(int v, int w)
	    { return D.edge(v, w); }
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -