Package minpq
Class OptimizedHeapMinPQ<T>
- java.lang.Object
-
- minpq.OptimizedHeapMinPQ<T>
-
- Type Parameters:
T- the type of elements in this priority queue.
- All Implemented Interfaces:
ExtrinsicMinPQ<T>
public class OptimizedHeapMinPQ<T> extends Object implements ExtrinsicMinPQ<T>
Optimized binary heap implementation of theExtrinsicMinPQinterface.- See Also:
ExtrinsicMinPQ
-
-
Field Summary
Fields Modifier and Type Field Description private List<PriorityNode<T>>itemsListofPriorityNodeobjects representing the heap of item-priority pairs.private Map<T,Integer>itemToIndexMapof each item to its associated index in theitemsheap.private intsizeThe number of elements in the heap.
-
Constructor Summary
Constructors Constructor Description OptimizedHeapMinPQ()Constructs an empty instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(T item, double priority)Adds an item with the given priority value.voidchangePriority(T item, double priority)Updates the given items' associated priority value.booleancontains(T item)Returns true if the given item is in this priority queue.TpeekMin()Returns the item with the minimum priority value.TremoveMin()Returns and removes the item with the minimum priority value.intsize()Returns the number of items in this priority queue.-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface minpq.ExtrinsicMinPQ
isEmpty
-
-
-
-
Field Detail
-
items
private final List<PriorityNode<T>> items
ListofPriorityNodeobjects representing the heap of item-priority pairs.
-
itemToIndex
private final Map<T,Integer> itemToIndex
Mapof each item to its associated index in theitemsheap.
-
size
private int size
The number of elements in the heap.
-
-
Method Detail
-
add
public void add(T item, double priority)
Description copied from interface:ExtrinsicMinPQAdds an item with the given priority value.- Specified by:
addin interfaceExtrinsicMinPQ<T>- Parameters:
item- the element to add.priority- the priority value for the item.
-
contains
public boolean contains(T item)
Description copied from interface:ExtrinsicMinPQReturns true if the given item is in this priority queue.- Specified by:
containsin interfaceExtrinsicMinPQ<T>- Parameters:
item- element to be checked for containment.- Returns:
- true if the given item is in this priority queue.
-
peekMin
public T peekMin()
Description copied from interface:ExtrinsicMinPQReturns the item with the minimum priority value.- Specified by:
peekMinin interfaceExtrinsicMinPQ<T>- Returns:
- the item with the minimum priority value.
-
removeMin
public T removeMin()
Description copied from interface:ExtrinsicMinPQReturns and removes the item with the minimum priority value.- Specified by:
removeMinin interfaceExtrinsicMinPQ<T>- Returns:
- the item with the minimum priority value.
-
changePriority
public void changePriority(T item, double priority)
Description copied from interface:ExtrinsicMinPQUpdates the given items' associated priority value.- Specified by:
changePriorityin interfaceExtrinsicMinPQ<T>- Parameters:
item- the element whose associated priority value should be modified.priority- the updated priority value.
-
size
public int size()
Description copied from interface:ExtrinsicMinPQReturns the number of items in this priority queue.- Specified by:
sizein interfaceExtrinsicMinPQ<T>- Returns:
- the number of elements in this priority queue.
-
-