sortedlistadaptablepriorityqueue-sortedlistadaptablepriorityqueue.html

来自「经典的数据结构源代码(java 实现)」· HTML 代码 · 共 52 行

HTML
52
字号
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre><font color = #ff0080>/** Implementation of an adaptable priority queue by means of a sorted list. */</font><font color=#8000a0>public</font> <font color=#8000a0><font color=#ff8000>class</font> </font>SortedListAdaptablePriorityQueue&lt;K,V&gt;    <font color=#8000a0><font color=#ff8000>extends</font> </font>SortedListPriorityQueue&lt;K,V&gt;     <font color=#8000a0><font color=#ff8000>implements</font> </font>AdaptablePriorityQueue&lt;K,V&gt; {  <font color = #ff0080>/** Creates the priority queue with the default comparator */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>SortedListAdaptablePriorityQueue</font>() {     <font color=#ff8000>super</font><font color=#0000ff></font>();  }  <font color = #ff0080>/** Creates the priority queue with the given comparator */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>SortedListAdaptablePriorityQueue</font>(Comparator&lt;K&gt; comp) {     <font color=#ff8000>super</font><font color=#0000ff></font>(comp);  }  <font color = #ff0080>/** Inserts a key-value pair and returns the entry created */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Entry&lt;K,V&gt; <font color=#0000ff>insert </font>(K k, <font color=#8000a0>V </font>v) <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidKeyException {    <font color=#0000ff>checkKey</font>(k);    LocationAwareEntry&lt;K,V&gt; entry = <font color=#8000a0><font color=#ff8000>new</font> </font>LocationAwareEntry&lt;K,V&gt;<font color=#0000ff></font>(k,v);    <font color=#0000ff>insertEntry</font>(entry);    entry.<font color=#0000ff>setLocation</font>(actionPos);	<font color=#ff0080>// position of the new entry</font>    <font color=#8000a0><font color=#ff8000>return</font> </font>entry;  }  <font color = #ff0080>/** Removes and returns the given entry */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Entry&lt;K,V&gt; <font color=#0000ff>remove</font>(Entry&lt;K,V&gt; entry) {    <font color=#0000ff>checkEntry</font>(entry);    LocationAwareEntry&lt;K,V&gt; e =<font color=#0000ff> </font>(LocationAwareEntry&lt;K,V&gt;) entry;    Position&lt;Entry&lt;K,V&gt;&gt; p = e.<font color=#0000ff>location</font>();    entries.<font color=#0000ff>remove</font>(p);    e.<font color=#0000ff>setLocation</font>(null);    <font color=#8000a0><font color=#ff8000>return</font> </font>e;  }  <font color = #ff0080>/** Replaces the key of the given entry */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>K <font color=#0000ff>replaceKey</font>(Entry&lt;K,V&gt; entry, <font color=#8000a0>K </font>k) {    <font color=#0000ff>checkKey</font>(k);    <font color=#0000ff>checkEntry</font>(entry);    LocationAwareEntry&lt;K,V&gt; e =<font color=#0000ff> </font>(LocationAwareEntry&lt;K,V&gt;) <font color=#0000ff>remove</font>(entry);    <font color=#8000a0>K </font>oldKey = e.<font color=#0000ff>setKey</font>(k);    <font color=#0000ff>insertEntry</font>(e);    e.<font color=#0000ff>setLocation</font>(actionPos); <font color=#ff0080>// position of new entry</font>    <font color=#8000a0><font color=#ff8000>return</font> </font>oldKey;  }</dl></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?