heappriorityqueue-heappriorityqueue.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>/** * Realization of a priority queue by means of a heap. A complete * binary tree realized by means of an array list is used to * represent the heap. */</font><font color=#8000a0>public</font> <font color=#8000a0><font color=#ff8000>class</font> </font>HeapPriorityQueue<K,V> <font color=#8000a0><font color=#ff8000>implements</font> </font>PriorityQueue<K,V> { <font color=#8000a0><font color=#8000a0>protected</font> </font>CompleteBinaryTree<Entry<K,V>> heap; <font color=#ff0080>// underlying heap</font> <font color=#8000a0><font color=#8000a0>protected</font> </font>Comparator<K> comp; <font color=#ff0080>// comparator for the keys</font> <font color = #ff0080>/** Inner class for heap entries. */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font><font color=#8000a0>static</font> <font color=#8000a0><font color=#ff8000>class</font> </font>MyEntry<K,V> <font color=#8000a0><font color=#ff8000>implements</font> </font>Entry<K,V> { <font color=#8000a0><font color=#8000a0>protected</font> </font>K key; <font color=#8000a0><font color=#8000a0>protected</font> </font>V value; <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>MyEntry</font>(K k, <font color=#8000a0>V </font>v) { key = k; value = v; } <font color=#8000a0><font color=#8000a0>public</font> </font>K <font color=#0000ff>getKey</font>() { <font color=#8000a0><font color=#ff8000>return</font> </font>key; } <font color=#8000a0><font color=#8000a0>public</font> </font>V <font color=#0000ff>getValue</font>() { <font color=#8000a0><font color=#ff8000>return</font> </font>value; } <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>String</font> <font color=#0000ff>toString</font>() { <font color=#ff8000>return</font> <font color=#008000>"("</font> + key + <font color=#008000>","</font> + value + <font color=#008000>")"</font>; } } <font color = #ff0080>/** Creates an empty heap with the default comparator */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>HeapPriorityQueue</font>() { heap = <font color=#8000a0><font color=#ff8000>new</font> </font>ArrayListCompleteBinaryTree<Entry<K,V>><font color=#0000ff></font>(); <font color=#ff0080>// use an array list</font> comp = <font color=#8000a0><font color=#ff8000>new</font> </font>DefaultComparator<K><font color=#0000ff></font>(); <font color=#ff0080>// use the default comparator</font> } <font color = #ff0080>/** Creates an empty heap with the given comparator */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>HeapPriorityQueue</font>(Comparator<K> c) { heap = <font color=#8000a0><font color=#ff8000>new</font> </font>ArrayListCompleteBinaryTree<Entry<K,V>><font color=#0000ff></font>(); comp = c; } <font color = #ff0080>/** Returns the size of the heap */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>int</font> <font color=#0000ff>size</font>() { <font color=#8000a0><font color=#ff8000>return</font> </font>heap.<font color=#0000ff>size</font>(); } <font color = #ff0080>/** Returns whether the heap is empty */</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>boolean</font> <font color=#0000ff>isEmpty</font>() { <font color=#8000a0><font color=#ff8000>return</font> </font>heap.<font color=#0000ff>size</font>() == 0; }</dl></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?