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&lt;V, E&gt; {  <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&lt;V, E&gt; 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&lt;Integer, Vertex&lt;V&gt;&gt; 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&lt;V, E&gt; g, Vertex&lt;V&gt; 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&lt;Integer, Vertex&lt;V&gt;&gt;<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&lt;V&gt; 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 + -
显示快捷键?