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&lt;K,V&gt; <font color=#8000a0><font color=#ff8000>implements</font> </font>PriorityQueue&lt;K,V&gt; {  <font color=#8000a0><font color=#8000a0>protected</font> </font>CompleteBinaryTree&lt;Entry&lt;K,V&gt;&gt; heap;	<font color=#ff0080>// underlying heap</font>  <font color=#8000a0><font color=#8000a0>protected</font> </font>Comparator&lt;K&gt; 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&lt;K,V&gt; <font color=#8000a0><font color=#ff8000>implements</font> </font>Entry&lt;K,V&gt; {    <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&lt;Entry&lt;K,V&gt;&gt;<font color=#0000ff></font>(); <font color=#ff0080>// use an array list</font>    comp = <font color=#8000a0><font color=#ff8000>new</font> </font>DefaultComparator&lt;K&gt;<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&lt;K&gt; c) {    heap = <font color=#8000a0><font color=#ff8000>new</font> </font>ArrayListCompleteBinaryTree&lt;Entry&lt;K,V&gt;&gt;<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 + -
显示快捷键?