📄 heappriorityqueue-mainmethods.html
字号:
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre> <font color = #ff0080>/** Returns but does not remove an entry with minimum key */</font> <font color=#8000a0><font color=#8000a0>public</font> </font>Entry<K,V> <font color=#0000ff>min</font>() <font color=#8000a0><font color=#ff8000>throws</font> </font>EmptyPriorityQueueException { <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>isEmpty</font>()) <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>EmptyPriorityQueueException</font>(<font color=#008000>"Priority queue is empty"</font>); <font color=#8000a0><font color=#ff8000>return</font> </font>heap.<font color=#0000ff>root</font>().<font color=#0000ff>element</font>(); } <font color = #ff0080>/** Inserts a key-value pair and returns the entry created */</font> <font color=#8000a0><font color=#8000a0>public</font> </font>Entry<K,V> <font color=#0000ff>insert</font>(K k, <font color=#8000a0>V </font>x) <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidKeyException { <font color=#0000ff>checkKey</font>(k); <font color=#ff0080>// may throw an InvalidKeyException</font> Entry<K,V> entry = <font color=#8000a0><font color=#ff8000>new</font> </font>MyEntry<K,V><font color=#0000ff></font>(k,x); <font color=#0000ff>upHeap</font>(heap.<font color=#0000ff>add</font>(entry)); <font color=#8000a0><font color=#ff8000>return</font> </font>entry; } <font color = #ff0080>/** Removes and returns an entry with minimum key */</font> <font color=#8000a0><font color=#8000a0>public</font> </font>Entry<K,V> <font color=#0000ff>removeMin</font>() <font color=#8000a0><font color=#ff8000>throws</font> </font>EmptyPriorityQueueException { <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>isEmpty</font>()) <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>EmptyPriorityQueueException</font>(<font color=#008000>"Priority queue is empty"</font>); Entry<K,V> min = heap.<font color=#0000ff>root</font>().<font color=#0000ff>element</font>(); <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>size</font>() == 1) heap.<font color=#0000ff>remove</font>(); <font color=#ff8000>else</font> { heap.<font color=#0000ff>replace</font>(heap.<font color=#0000ff>root</font>(), heap.<font color=#0000ff>remove</font>()); <font color=#0000ff>downHeap</font>(heap.<font color=#0000ff>root</font>()); } <font color=#8000a0><font color=#ff8000>return</font> </font>min; } <font color = #ff0080>/** Determines whether a given key is valid */</font> <font color=#8000a0><font color=#8000a0>protected</font> </font><font color=#8000a0>void</font> <font color=#0000ff>checkKey</font>(K key) <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidKeyException { <font color=#ff8000>try</font> { comp.<font color=#0000ff>compare</font>(key,key); } <font color=#ff8000>catch</font><font color=#0000ff></font>(Exception e) { <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>InvalidKeyException</font>(<font color=#008000>"Invalid key"</font>); } }</dl></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -