1.1 --- a/src/work/jacint/dijkstra.h Thu Mar 11 11:03:22 2004 +0000
1.2 +++ b/src/work/jacint/dijkstra.h Thu Mar 11 12:55:50 2004 +0000
1.3 @@ -2,29 +2,24 @@
1.4 /*
1.5 *template <Graph, T, Heap=FibHeap>
1.6 *
1.7 - *
1.8 *Constructor:
1.9 *
1.10 *Dijkstra(Graph G, NodeIt s, Graph::EdgeMap<T> length)
1.11 *
1.12 *
1.13 - *
1.14 *Member functions:
1.15 *
1.16 *void run()
1.17 *
1.18 * The following function should be used after run() was already run.
1.19 *
1.20 - *
1.21 *T dist(NodeIt v) : returns the distance from s to v.
1.22 * It is 0 if v is not reachable from s.
1.23 *
1.24 - *
1.25 *EdgeIt pred(NodeIt v) : returns the last edge
1.26 * of a shortest s-v path. Returns an invalid iterator
1.27 * if v=s or v is not reachable from s.
1.28 *
1.29 - *
1.30 *bool reach(NodeIt v) : true iff v is reachable from s
1.31 *
1.32 */
1.33 @@ -76,9 +71,9 @@
1.34
1.35 NodeIt v=heap.top();
1.36 T oldvalue=heap.get(v);
1.37 + heap.pop();
1.38 distance.set(v, oldvalue);
1.39 - heap.pop();
1.40 -
1.41 +
1.42 OutEdgeIt e;
1.43 for( G.getFirst(e,v); G.valid(e); G.next(e)) {
1.44 NodeIt w=G.bNode(e);
1.45 @@ -88,7 +83,6 @@
1.46 reached.set(w,true);
1.47 heap.push(w,oldvalue+length.get(e));
1.48 predecessor.set(w,e);
1.49 -
1.50 } else if ( oldvalue+length.get(e) < heap.get(w) ) {
1.51 predecessor.set(w,e);
1.52 heap.decrease(w, oldvalue+length.get(e));
1.53 @@ -114,9 +108,9 @@
1.54 bool reach(NodeIt v) {
1.55 return reached.get(v);
1.56 }
1.57 -
1.58 +
1.59 };
1.60 -
1.61 +
1.62 }
1.63
1.64 #endif