protected override void visit(EdgeWeightedGraph graph, int v) { marked[v] = true; foreach (Edge edge in graph.Adj(v)) { int w = edge.Other(v); if (marked[w]) continue; if (edge.Weight < diestTo[w]) { edgeTo[w] = edge; diestTo[w] = edge.Weight; if (pq.Contains(w)) { pq.Change(w, diestTo[w]); } else { pq.Insert(w, diestTo[w]); } } } }
protected override void visit(EdgeWeightedGraph graph, int v) { marked[v] = true; foreach (Edge edge in graph.Adj(v)) { if (!marked[edge.Other(v)]) pq.insert(edge); } }