edu.uci.ics.jung.algorithms.util
Class MapBinaryHeap<T>

java.lang.Object
  extended by java.util.AbstractCollection<T>
      extended by edu.uci.ics.jung.algorithms.util.MapBinaryHeap<T>
All Implemented Interfaces:
Iterable<T>, Collection<T>, Queue<T>

public class MapBinaryHeap<T>
extends AbstractCollection<T>
implements Queue<T>

An array-based binary heap implementation of a priority queue, which also provides efficient update() and contains operations. It contains extra infrastructure (a hash table) to keep track of the position of each element in the array; thus, if the key value of an element changes, it may be "resubmitted" to the heap via update so that the heap can reposition it efficiently, as necessary.

Author:
Joshua O'Madadhain

Constructor Summary
MapBinaryHeap()
          Creates a MapBinaryHeap whose heap ordering will be based on the natural ordering of the elements, which must be Comparable.
MapBinaryHeap(Collection<T> c)
          Creates a MapBinaryHeap based on the specified collection whose heap ordering will be based on the natural ordering of the elements, which must be Comparable.
MapBinaryHeap(Collection<T> c, Comparator<T> comp)
          Creates a MapBinaryHeap based on the specified collection whose heap ordering is based on the ordering of the elements specified by c.
MapBinaryHeap(Comparator<T> comp)
          Creates a MapBinaryHeap whose heap ordering is based on the ordering of the elements specified by c.
 
Method Summary
 boolean add(T o)
          Inserts o into this collection.
 void clear()
           
 boolean contains(Object o)
           
 T element()
           
 boolean isEmpty()
          Returns true if this collection contains no elements, and false otherwise.
 Iterator<T> iterator()
          Returns an Iterator that does not support modification of the heap.
 boolean offer(T o)
           
 T peek()
          Returns the element at the top of the heap; does not alter the heap.
 T poll()
           
 T pop()
          Deprecated. Use poll() or remove() instead.
 T remove()
           
 boolean remove(Object o)
          This data structure does not support the removal of arbitrary elements.
 boolean removeAll(Collection<?> c)
          This data structure does not support the removal of arbitrary elements.
 boolean retainAll(Collection<?> c)
          This data structure does not support the removal of arbitrary elements.
 int size()
          Returns the size of this heap.
 void update(T o)
          Informs the heap that this object's internal key value has been updated, and that its place in the heap may need to be shifted (up or down).
 
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
addAll, containsAll, equals, hashCode, toArray, toArray
 

Constructor Detail

MapBinaryHeap

public MapBinaryHeap(Comparator<T> comp)
Creates a MapBinaryHeap whose heap ordering is based on the ordering of the elements specified by c.


MapBinaryHeap

public MapBinaryHeap()
Creates a MapBinaryHeap whose heap ordering will be based on the natural ordering of the elements, which must be Comparable.


MapBinaryHeap

public MapBinaryHeap(Collection<T> c)
Creates a MapBinaryHeap based on the specified collection whose heap ordering will be based on the natural ordering of the elements, which must be Comparable.


MapBinaryHeap

public MapBinaryHeap(Collection<T> c,
                     Comparator<T> comp)
Creates a MapBinaryHeap based on the specified collection whose heap ordering is based on the ordering of the elements specified by c.

Method Detail

clear

public void clear()
Specified by:
clear in interface Collection<T>
Overrides:
clear in class AbstractCollection<T>
See Also:
Collection.clear()

add

public boolean add(T o)
Inserts o into this collection.

Specified by:
add in interface Collection<T>
Overrides:
add in class AbstractCollection<T>

isEmpty

public boolean isEmpty()
Returns true if this collection contains no elements, and false otherwise.

Specified by:
isEmpty in interface Collection<T>
Overrides:
isEmpty in class AbstractCollection<T>

peek

public T peek()
Returns the element at the top of the heap; does not alter the heap.

Specified by:
peek in interface Queue<T>

pop

@Deprecated
public T pop()
      throws NoSuchElementException
Deprecated. Use poll() or remove() instead.

Removes the element at the top of this heap, and returns it.

Throws:
NoSuchElementException

size

public int size()
Returns the size of this heap.

Specified by:
size in interface Collection<T>
Specified by:
size in class AbstractCollection<T>

update

public void update(T o)
Informs the heap that this object's internal key value has been updated, and that its place in the heap may need to be shifted (up or down).

Parameters:
o -

contains

public boolean contains(Object o)
Specified by:
contains in interface Collection<T>
Overrides:
contains in class AbstractCollection<T>
See Also:
Collection.contains(java.lang.Object)

iterator

public Iterator<T> iterator()
Returns an Iterator that does not support modification of the heap.

Specified by:
iterator in interface Iterable<T>
Specified by:
iterator in interface Collection<T>
Specified by:
iterator in class AbstractCollection<T>

remove

public boolean remove(Object o)
This data structure does not support the removal of arbitrary elements.

Specified by:
remove in interface Collection<T>
Overrides:
remove in class AbstractCollection<T>

removeAll

public boolean removeAll(Collection<?> c)
This data structure does not support the removal of arbitrary elements.

Specified by:
removeAll in interface Collection<T>
Overrides:
removeAll in class AbstractCollection<T>

retainAll

public boolean retainAll(Collection<?> c)
This data structure does not support the removal of arbitrary elements.

Specified by:
retainAll in interface Collection<T>
Overrides:
retainAll in class AbstractCollection<T>

element

public T element()
          throws NoSuchElementException
Specified by:
element in interface Queue<T>
Throws:
NoSuchElementException

offer

public boolean offer(T o)
Specified by:
offer in interface Queue<T>

poll

public T poll()
Specified by:
poll in interface Queue<T>

remove

public T remove()
Specified by:
remove in interface Queue<T>


Copyright © 2009. All Rights Reserved.