private bool check(Digraph digraph) { TransitiveClosure transitiveClosure = new TransitiveClosure(digraph); for (int i = 0; i < digraph.V(); i++) { for (int j = 0; j < digraph.V(); j++) { if (this.stronglyConnected(i, j) != ((!transitiveClosure.reachable(i, j) || !transitiveClosure.reachable(j, i)) ? false : true)) { return(false); } } } return(true); }
/**/ public static void main(string[] strarr) { In i = new In(strarr[0]); Digraph digraph = new Digraph(i); TransitiveClosure transitiveClosure = new TransitiveClosure(digraph); StdOut.print(" "); for (int j = 0; j < digraph.V(); j++) { StdOut.printf("%3d", new object[] { Integer.valueOf(j) }); } StdOut.println(); StdOut.println("--------------------------------------------"); for (int j = 0; j < digraph.V(); j++) { StdOut.printf("%3d: ", new object[] { Integer.valueOf(j) }); for (int k = 0; k < digraph.V(); k++) { if (transitiveClosure.reachable(j, k)) { StdOut.printf(" T", new object[0]); } else { StdOut.printf(" ", new object[0]); } } StdOut.println(); } }