public void minimalSpanning(int sVertex) // Method to create the edges of the minimal // spanning tree. The weight of the edges is also // saved in the array edgeWeights. { // ToDo for (int i = 0; i < edges.length; i++) { v.add((Integer) i); } vNew.add(sVertex); for (int i = 0; i < graph.length; i++) { LinkedListClass.LinkedListIterator it = graph[i].iterator(); while (it.hasNext()) { Pair p = new Pair(); p.u = i; p.w = (Integer) it.next(); p.weight = weights[p.u][p.w]; e.add(p); } } while (eNew.size() < v.size() - 1) { Pair smallestEdge = new Pair(); smallestEdge.weight = Double.MAX_VALUE; for (Pair edge : e) { if (!eNew.contains(edge) && ((vNew.contains(edge.u) && !vNew.contains(edge.w) || vNew.contains(edge.w) && !vNew.contains(edge.u)))) { if (edge.weight < smallestEdge.weight) { smallestEdge = edge; } } } eNew.add(smallestEdge); if (vNew.contains(smallestEdge.u)) { vNew.add(smallestEdge.w); } else { vNew.add(smallestEdge.u); } } for (Pair edge : eNew) { edges[edge.u] = edge.w; edgeWeights[edge.u] = edge.weight; } } // end minimalSpanning