| 
 | JUtil | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface Heap<K,V>
Heaps support create, insert, minimum, extract-min,
 union, decrease-key, and delete operations.  There are three primary
 implementations, each with different expected run-times:
 
| Procedure | BinaryHeap(worst-case) | BinomialHeap(worst-case) | FibonacciHeap(amortized) | 
|---|---|---|---|
| MAKE-HEAP | Theta(1) | Theta(1) | Theta(1) | 
| INSERT | Theta(lg n) | O(lg n) | Theta(1) | 
| MINIMUM | Theta(1) | O(lg n) | Theta(1) | 
| EXTRACT-MIN | Theta(lg n) | Theta(lg n) | O(lg n) | 
| UNION | Theta(n) | O(lg n) | Theta(1) | 
| DECREASE-KEY | Theta(lg n) | Theta(lg n) | Theta(1) | 
| UPDATE-KEY | Theta(lg n) | Theta(lg n) | Theta(lg n) | 
| DELETE | Theta(lg n) | Theta(lg n) | O(lg n) | 
 All implementations of Heap should have a no-argument
 constructor which implements the 
 MAKE-HEAP operation in
 the above-stated time bound.  In addition, certain implementations
 may also have constructors which take a Map or
 Heap and construct a heap in less time than it would
 take to call insert() on each item on an initially-empty
 Heap.
 Note that the 
 UPDATE-KEY operation is
 typically implemented as a delete followed by an insert, which
 often has worse performance than a
 DECREASE-KEY operation.
 However, some algorithms need to increase keys as well as decrease
 them; there's nothing you can do about that.
BinaryHeap, 
BinomialHeap, 
FibonacciHeap| Method Summary | |
|---|---|
|  void | clear()Removes all entries from this Heap. | 
|  Comparator<K> | comparator()Returns the comparator associated with this Heap,
  ornullif it uses its elements' natural ordering. | 
|  void | decreaseKey(Map.Entry<K,V> me,
            K newkey)Replace the key in the specified map entry with the specified smaller key. | 
|  void | delete(Map.Entry<K,V> me)Remove the specified map entry from the mapping. | 
|  Collection<Map.Entry<K,V>> | entries()Returns a collection view of all the Map.Entrys
  in thisHeap. | 
|  boolean | equals(Object o)Compares the specified object with this heap for equality. | 
|  Map.Entry<K,V> | extractMinimum()Remove and return a map entry with minimal key. | 
|  int | hashCode()Returns the hash code for this heap. | 
|  Map.Entry<K,V> | insert(K key,
       V value)Inserts a node with the specified key and value into the Heap. | 
|  boolean | isEmpty()Returns trueif thisHeaphas no more
  entries. | 
|  Map.Entry<K,V> | minimum()Returns a mapping entry with minimal key. | 
|  int | size()Returns the number of entries in this Heap. | 
|  String | toString()Returns a string representation of this Heap. | 
|  void | union(Heap<? extends K,? extends V> h)Merges all of the mappings from the specified Heapinto thisHeap. | 
|  void | updateKey(Map.Entry<K,V> me,
          K newkey)Replace the key in the specified map entry with the specified key, which may be either larger or smaller than its current key. | 
| Method Detail | 
|---|
Map.Entry<K,V> insert(K key,
                      V value)
Heap.  Returns the generated Map.Entry
  which may be stored and eventually passed back to
  decreaseKey() or delete to remove
  this node.
Map.Entry<K,V> minimum()
NoSuchElementException - if the heap has no entries.Map.Entry<K,V> extractMinimum()
NoSuchElementException - if the heap has no entries.void union(Heap<? extends K,? extends V> h)
Heap 
  into this Heap.  Note that duplicates are
  permitted.  After calling union(), the Heap
  passed in as an argument will be empty.
  Note that usually efficient implementations of this method require
  that the Heap argument be from the same implementation
  as this. (That is, they must both be binomial heaps, or
  both fibonacci heaps, etc.)
void decreaseKey(Map.Entry<K,V> me,
                 K newkey)
void updateKey(Map.Entry<K,V> me,
               K newkey)
void delete(Map.Entry<K,V> me)
boolean isEmpty()
true if this Heap has no more
  entries.
void clear()
Heap.
int size()
Heap.
Collection<Map.Entry<K,V>> entries()
Map.Entrys
  in this Heap.
int hashCode()
Collection returned by entries().
hashCode in class Objectboolean equals(Object o)
true iff the given object is also a
  Heap and the Collections returned
  by their entries() methods are equal using
  the equals() method of Collection.
equals in class ObjectString toString()
Heap.
toString in class ObjectComparator<K> comparator()
Heap,
  or null if it uses its elements' natural ordering.
| 
 | JUtil | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||