Package dsa.lab09.solutions
Class BinaryHeapPriorityQueue<Priority extends Comparable<Priority>,Item>
java.lang.Object
dsa.lab09.solutions.BinaryHeapPriorityQueue<Priority,Item>
- Type Parameters:
Priority
- the priority typeItem
- the item type
- All Implemented Interfaces:
Container<PriorityQueueItem<Priority,
,Item>> PriorityQueue<Priority,
,Item> Iterable<PriorityQueueItem<Priority,
Item>>
public class BinaryHeapPriorityQueue<Priority extends Comparable<Priority>,Item>
extends Object
implements PriorityQueue<Priority,Item>
A binary heap priority queue.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Nested classes/interfaces inherited from interface dsa.lab09.base.PriorityQueue
PriorityQueue.ItemIterator<Priority extends Comparable<Priority>,
Item> -
Constructor Summary
ConstructorsConstructorDescriptionConstruct an empty binary heap priority queue.BinaryHeapPriorityQueue
(PriorityQueueItem<Priority, Item>... items) Construct a binary heap priority queue containing the given items.Construct a binary heap priority queue containing the given items.BinaryHeapPriorityQueue
(Iterable<PriorityQueueItem<Priority, Item>> items, int size) Construct a binary heap priority queue containing the given items more efficiently thanBinaryHeapPriorityQueue(Iterable)
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
insert
(PriorityQueueItem<Priority, Item> item) Insert the given prioritised item.items()
Get a forward iterable that yields each prioritised item once.max()
Get the item with the greatest priority.Remove the item with the greatest priority.reversed()
Get a reverse iterable that yields each prioritised item once.int
size()
Get the number of contained items.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface dsa.lab09.base.PriorityQueue
insert, itemsOnly, reversedItemsOnly
-
Constructor Details
-
BinaryHeapPriorityQueue
public BinaryHeapPriorityQueue()Construct an empty binary heap priority queue. -
BinaryHeapPriorityQueue
Construct a binary heap priority queue containing the given items.- Parameters:
items
- the items
-
BinaryHeapPriorityQueue
public BinaryHeapPriorityQueue(Iterable<PriorityQueueItem<Priority, Item>> items, int size) throws IllegalArgumentExceptionConstruct a binary heap priority queue containing the given items more efficiently thanBinaryHeapPriorityQueue(Iterable)
.- Parameters:
items
- the itemssize
- the number of items- Throws:
IllegalArgumentException
- ifsize
!=n
(wheren
isitems
's size)
-
BinaryHeapPriorityQueue
Construct a binary heap priority queue containing the given items.- Parameters:
items
- the items
-
-
Method Details
-
size
public int size()Description copied from interface:Container
Get the number of contained items.- Specified by:
size
in interfaceContainer<Priority extends Comparable<Priority>>
- Returns:
- the size
-
max
Description copied from interface:PriorityQueue
Get the item with the greatest priority.- Specified by:
max
in interfacePriorityQueue<Priority extends Comparable<Priority>,
Item> - Returns:
- the maximum priority item, or
null
if empty
-
insert
Description copied from interface:PriorityQueue
Insert the given prioritised item.- Specified by:
insert
in interfacePriorityQueue<Priority extends Comparable<Priority>,
Item> - Parameters:
item
- the prioritised item
-
removeMax
Description copied from interface:PriorityQueue
Remove the item with the greatest priority.- Specified by:
removeMax
in interfacePriorityQueue<Priority extends Comparable<Priority>,
Item> - Returns:
- the maximum priority item, or
null
if empty
-
items
Description copied from interface:PriorityQueue
Get a forward iterable that yields each prioritised item once.The items are iterated over in max-to-min order (by priority).
- Specified by:
items
in interfaceContainer<Priority extends Comparable<Priority>>
- Specified by:
items
in interfacePriorityQueue<Priority extends Comparable<Priority>,
Item> - Returns:
- an iterable over the prioritised items
-
reversed
Description copied from interface:PriorityQueue
Get a reverse iterable that yields each prioritised item once.The items are iterated over in min-to-max order (by priority).
- Specified by:
reversed
in interfacePriorityQueue<Priority extends Comparable<Priority>,
Item> - Returns:
- an iterable over the prioritised items
-