示例#1
0
 // Option 2
 public void mst() {
   edgeTo = new Route[numCities];
   distTo = new int[numCities];
   marked = new boolean[numCities];
   pq = new IndexMinPQ<Integer>(numCities);
   System.out.println("MINIMUM SPANNING TREE");
   System.out.print("---------------------");
   for (int i = 0; i < numCities; i++) {
     distTo[i] = Integer.MAX_VALUE;
   }
   for (int i = 0; i < numCities; i++) { // run from each vertex to find
     if (!marked[i]) { // minimum spanning forest
       StringBuilder sb = new StringBuilder();
       prim(i, sb);
       if (sb.length() > 0) { // Don't print if no routes in CC
         System.out.println("\nConnected Component:");
         System.out.print(sb);
       }
     }
   }
 }