|
JUtil | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.cscott.jutil.AbstractHeap<K,V>
net.cscott.jutil.BinomialHeap<K,V>
public class BinomialHeap<K,V>
A BinomialHeap allows
O(lg n) time bounds for insert, minimum, extract-min, union,
decrease-key, and delete operations. Implementation is based on
the description in Introduction to Algorithms by Cormen,
Leiserson, and Rivest, on page 400 and following.
| Constructor Summary | |
|---|---|
BinomialHeap()
Constructs a new, empty BinomialHeap, sorted according
to the keys' natural order. |
|
BinomialHeap(Collection<? extends Map.Entry<? extends K,? extends V>> collection,
Comparator<K> comparator)
Constructs a binomial heap from a collection of Map.Entrys and a key comparator. |
|
BinomialHeap(Comparator<K> c)
Constructs a new, empty BinomialHeap, sorted according
to the given comparator. |
|
BinomialHeap(Heap<K,? extends V> h)
Constructs a new binomial heap with the same entries as the specified Heap. |
|
| Method Summary | |
|---|---|
void |
clear()
Removes all mappings from this map. |
BinomialHeap<K,V> |
clone()
Creates a new BinomialHeap with all the key-value pairs this one has. |
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()
Return an unmodifiable collection of entries in this heap. |
Map.Entry<K,V> |
extractMinimum()
Remove and return the map entry with minimal key. |
Map.Entry<K,V> |
find(K key)
Lookup a Map.Entry in the heap with key equal to
the specified key. |
Map.Entry<K,V> |
insert(K key,
V value)
Associates the specified value with the specified key in the map. |
protected void |
insert(Map.Entry<K,V> me)
This method should insert the specified Map.Entry,
which is not currently in the Heap, into the
Heap. |
boolean |
isEmpty()
Returns true if this map contains no key-value mappings. |
static void |
main(String[] argv)
Self-test function. |
Map.Entry<K,V> |
minimum()
Returns a mapping entry with minimal key. |
protected K |
setKey(Map.Entry<K,V> me,
K newkey)
This method should set the key for the specified Map.Entry to the given newkey. |
int |
size()
Returns the size of this map. |
void |
union(BinomialHeap<K,V> m)
Merges all of the mappings from the specified map to this map. |
void |
union(Heap<? extends K,? extends V> h)
Add all the entries from the given heap to this one. |
| Methods inherited from class net.cscott.jutil.AbstractHeap |
|---|
comparator, entryComparator, equals, hashCode, keyComparator, toString, updateKey |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public BinomialHeap()
BinomialHeap, sorted according
to the keys' natural order. All keys inserted into the new map
must implement the Comparable interface. O(1) time.
public BinomialHeap(Comparator<K> c)
BinomialHeap, sorted according
to the given comparator. O(1) time.
public BinomialHeap(Heap<K,? extends V> h)
Heap. O(n) time.
public BinomialHeap(Collection<? extends Map.Entry<? extends K,? extends V>> collection,
Comparator<K> comparator)
Map.Entrys and a key comparator. O(n) time.
| Method Detail |
|---|
public Map.Entry<K,V> minimum()
minimum in interface Heap<K,V>minimum in class AbstractHeap<K,V>public void union(Heap<? extends K,? extends V> h)
BinomialHeap
and its entry comparator is the same as this one's.
Otherwise, it takes O(n) time.
union in interface Heap<K,V>union in class AbstractHeap<K,V>public void union(BinomialHeap<K,V> m)
this. After calling union(), the
specified map will be empty.
public Map.Entry<K,V> insert(K key,
V value)
insert(). O(lg n) time.
insert in interface Heap<K,V>insert in class AbstractHeap<K,V>Map.Entry added.protected void insert(Map.Entry<K,V> me)
AbstractHeapMap.Entry,
which is not currently in the Heap, into the
Heap. Implementation is optional, but it is required
if you use the default implementation of updateKey().
insert in class AbstractHeap<K,V>public Map.Entry<K,V> extractMinimum()
extractMinimum in interface Heap<K,V>extractMinimum in class AbstractHeap<K,V>
public void decreaseKey(Map.Entry<K,V> me,
K newkey)
decreaseKey in interface Heap<K,V>decreaseKey in class AbstractHeap<K,V>public void delete(Map.Entry<K,V> me)
delete in interface Heap<K,V>delete in class AbstractHeap<K,V>public Collection<Map.Entry<K,V>> entries()
entries in interface Heap<K,V>entries in class AbstractHeap<K,V>public int size()
size in interface Heap<K,V>size in class AbstractHeap<K,V>public void clear()
clear in interface Heap<K,V>clear in class AbstractHeap<K,V>public boolean isEmpty()
true if this map contains no key-value mappings.
isEmpty in interface Heap<K,V>isEmpty in class AbstractHeap<K,V>public BinomialHeap<K,V> clone()
clone in class Objectpublic Map.Entry<K,V> find(K key)
Map.Entry in the heap with key equal to
the specified key. O(n), although pruning is done on subtrees
with root larger than the specified key. What this means is
that the smaller the key is, the faster this will run.
protected final K setKey(Map.Entry<K,V> me,
K newkey)
AbstractHeapMap.Entry to the given newkey.
Implementation is optional, but it is required if you use the
default implementation of updateKey().
setKey in class AbstractHeap<K,V>public static void main(String[] argv)
|
JUtil | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||