|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--harpoon.Util.Collections.AbstractHeap | +--harpoon.Util.Collections.BinomialHeap
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 collection,
Comparator comparator)
Constructs a binomial heap from a collection of Map.Entry s and a key comparator. |
|
BinomialHeap(Comparator c)
Constructs a new, empty BinomialHeap , sorted according
to the given comparator. |
|
BinomialHeap(Heap h)
Constructs a new binomial heap with the same entries as the specified Heap . |
Method Summary | |
void |
clear()
Removes all mappings from this map. |
Object |
clone()
Creates a new BinomialHeap with all the key-value pairs this one has. |
void |
decreaseKey(Map.Entry me,
Object newkey)
Replace the key in the specified map entry with the specified smaller key. |
void |
delete(Map.Entry me)
Remove the specified map entry from the mapping. |
Collection |
entries()
Return an unmodifiable collection of entries in this heap. |
Map.Entry |
extractMinimum()
Remove and return the map entry with minimal key. |
Map.Entry |
find(Object key)
Lookup a Map.Entry in the heap with key equal to
the specified key. |
protected void |
insert(Map.Entry me)
This method should insert the specified Map.Entry ,
which is not currently in the Heap , into the
Heap . |
Map.Entry |
insert(Object key,
Object value)
Associates the specified value with the specified key in the map. |
boolean |
isEmpty()
Returns true if this map contains no key-value mappings. |
static void |
main(String[] argv)
Self-test function. |
Map.Entry |
minimum()
Returns a mapping entry with minimal key. |
protected Object |
setKey(Map.Entry me,
Object 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 m)
Merges all of the mappings from the specified map to this map. |
void |
union(Heap h)
Add all the entries from the given heap to this one. |
Methods inherited from class harpoon.Util.Collections.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 c)
BinomialHeap
, sorted according
to the given comparator. O(1) time.
public BinomialHeap(Heap h)
Heap
. O(n) time.
public BinomialHeap(Collection collection, Comparator comparator)
Map.Entry
s and a key comparator. O(n) time.
Method Detail |
public Map.Entry minimum()
minimum
in interface Heap
minimum
in class AbstractHeap
public void union(Heap h)
BinomialHeap
and its entry comparator is the same as this one's.
Otherwise, it takes O(n) time.
union
in interface Heap
union
in class AbstractHeap
public void union(BinomialHeap m)
this
. After calling union()
, the
specified map will be empty.
public Map.Entry insert(Object key, Object value)
insert()
. O(lg n) time.
insert
in interface Heap
insert
in class AbstractHeap
Map.Entry
added.protected void insert(Map.Entry me)
AbstractHeap
Map.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
public Map.Entry extractMinimum()
extractMinimum
in interface Heap
extractMinimum
in class AbstractHeap
public void decreaseKey(Map.Entry me, Object newkey)
decreaseKey
in interface Heap
decreaseKey
in class AbstractHeap
public void delete(Map.Entry me)
delete
in interface Heap
delete
in class AbstractHeap
public Collection entries()
entries
in interface Heap
entries
in class AbstractHeap
public int size()
size
in interface Heap
size
in class AbstractHeap
public void clear()
clear
in interface Heap
clear
in class AbstractHeap
public boolean isEmpty()
true
if this map contains no key-value mappings.
isEmpty
in interface Heap
isEmpty
in class AbstractHeap
public Object clone()
clone
in class Object
public Map.Entry find(Object 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 Object setKey(Map.Entry me, Object newkey)
AbstractHeap
Map.Entry
to the given newkey
.
Implementation is optional, but it is required if you use the
default implementation of updateKey()
.
setKey
in class AbstractHeap
public static void main(String[] argv)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |