public class Graph {
/**
* 节点数量
*/
public int v;
public LinkedList<Integer> adj[];
private Graph(int v) {
this.v = v;
// 初始化顶点
adj = new LinkedList[v];
for (int i = 0; i < v; i++) {
adj[i] = new LinkedList<>();
}
}
/**
* 添加边
* @param i
* @param j
*/
private void addEdge(int i, int j) {
adj[i].add(j);
}
}
public class TopoSort {
/**
*
* @param graph
*/
private static void topoSort(Graph graph, int v) {
// 辅助作用
LinkedList<Integer> queue = new LinkedList<>();
int[] result = new int[v];
// 每个节点的入度
int[] degree = new int[v];
for (int i = 0; i < v; i++) {
for (int j = 0; j < graph.adj[i].size(); j++) {
in
public class Graph { /** * 节点数量 */ public int v; public LinkedList&lt;Integer&gt; adj[]; private Graph(int v) { this.v = v; // 初始化顶点 adj = new Link...