dijkstra-execute.html
来自「经典的数据结构源代码(java 实现)」· HTML 代码 · 共 44 行
HTML
44 行
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre><font color=#ff0080>/* Dijkstra's algorithm for the single-source shortest path problem * in an undirected graph whose edges have non-negative integer weights. */</font><font color=#8000a0>public</font> <font color=#8000a0><font color=#ff8000>class</font> </font>Dijkstra<V, E> { <font color = #ff0080>/** Infinity value. */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font><font color=#8000a0>static</font> <font color=#8000a0><font color=#8000a0>final</font> </font>Integer INFINITE = Integer.MAX_VALUE; <font color = #ff0080>/** Input graph. */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font>Graph<V, E> graph; <font color = #ff0080>/** Decoration key for edge weights */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font>Object WEIGHT; <font color = #ff0080>/** Decoration key for vertex distances */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font>Object DIST = <font color=#8000a0><font color=#ff8000>new</font> </font><font color=#0000ff>Object</font>(); <font color = #ff0080>/** Decoration key for entries in the priority queue */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font>Object ENTRY = <font color=#8000a0><font color=#ff8000>new</font> </font><font color=#0000ff>Object</font>(); <font color = #ff0080>/** Auxiliary priority queue. */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font>AdaptablePriorityQueue<Integer, Vertex<V>> Q; <font color=#ff0080>/** Executes Dijkstra's algorithm. * @param g Input graph * @param s Source vertex * @param w Weight decoration object */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>void</font> <font color=#0000ff>execute</font>(Graph<V, E> g, Vertex<V> s, <font color=#8000a0>Object </font>w) { graph = g; WEIGHT = w; <font color=#8000a0>DefaultComparator </font>dc = <font color=#8000a0><font color=#ff8000>new</font> </font><font color=#0000ff>DefaultComparator</font>(); Q = <font color=#8000a0><font color=#ff8000>new</font> </font>HeapAdaptablePriorityQueue<Integer, Vertex<V>><font color=#0000ff></font>(dc); <font color=#0000ff>dijkstraVisit</font>(s); } <font color=#ff0080>/** Get the distance of a vertex from the source vertex. * @param u Start vertex for the shortest path tree */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>int</font> <font color=#0000ff>getDist</font>(Vertex<V> u) { <font color=#ff8000>return</font><font color=#0000ff> </font>(Integer) u.<font color=#0000ff>get</font>(DIST); }</dl></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?