Package org.insa.graphs.algorithm.utils
Class BinaryHeap<E extends java.lang.Comparable<E>>
- java.lang.Object
-
- org.insa.graphs.algorithm.utils.BinaryHeap<E>
-
- All Implemented Interfaces:
PriorityQueue<E>
public class BinaryHeap<E extends java.lang.Comparable<E>> extends java.lang.Object implements PriorityQueue<E>
Implements a binary heap containing elements of type E. Note that all comparisons are based on the compareTo method, hence E must implement Comparable
-
-
Constructor Summary
Constructors Constructor Description BinaryHeap()Construct a new empty binary heap.BinaryHeap(BinaryHeap<E> heap)Construct a copy of the given heap.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EdeleteMin()Remove and return the smallest item from the priority queue.EfindMin()Retrieve (but not remove) the smallest item in the queue.protected intindexLeft(int index)protected intindexParent(int index)voidinsert(E x)Insert the given element into the queue.booleanisEmpty()Check if the priority queue is empty.voidremove(E x)Remove the given element from the priority queue.intsize()Get the number of elements in this queue.java.lang.StringtoString()java.lang.StringtoStringSorted()Creates a multi-lines string representing a sorted view of this binary heap.java.lang.StringtoStringSorted(int maxElement)Creates a multi-lines string representing a sorted view of this binary heap.java.lang.StringtoStringTree()Creates a multi-lines string representing a tree view of this binary heap.java.lang.StringtoStringTree(int maxDepth)Creates a multi-lines string representing a tree view of this binary heap.
-
-
-
Constructor Detail
-
BinaryHeap
public BinaryHeap()
Construct a new empty binary heap.
-
BinaryHeap
public BinaryHeap(BinaryHeap<E> heap)
Construct a copy of the given heap.- Parameters:
heap- Binary heap to copy.
-
-
Method Detail
-
indexParent
protected int indexParent(int index)
- Returns:
- Index of the parent of the given index.
-
indexLeft
protected int indexLeft(int index)
- Returns:
- Index of the left child of the given index.
-
isEmpty
public boolean isEmpty()
Description copied from interface:PriorityQueueCheck if the priority queue is empty.Complexity: O(1)
- Specified by:
isEmptyin interfacePriorityQueue<E extends java.lang.Comparable<E>>- Returns:
- true if the queue is empty, false otherwise.
-
size
public int size()
Description copied from interface:PriorityQueueGet the number of elements in this queue.Complexity: O(1)
- Specified by:
sizein interfacePriorityQueue<E extends java.lang.Comparable<E>>- Returns:
- Current size (number of elements) of this queue.
-
insert
public void insert(E x)
Description copied from interface:PriorityQueueInsert the given element into the queue.Complexity: O(log n)
- Specified by:
insertin interfacePriorityQueue<E extends java.lang.Comparable<E>>- Parameters:
x- Item to insert.
-
remove
public void remove(E x) throws ElementNotFoundException
Description copied from interface:PriorityQueueRemove the given element from the priority queue.Complexity: O(log n)
- Specified by:
removein interfacePriorityQueue<E extends java.lang.Comparable<E>>- Parameters:
x- Item to remove.- Throws:
ElementNotFoundException
-
findMin
public E findMin() throws EmptyPriorityQueueException
Description copied from interface:PriorityQueueRetrieve (but not remove) the smallest item in the queue.Complexity: O(1)
- Specified by:
findMinin interfacePriorityQueue<E extends java.lang.Comparable<E>>- Returns:
- The smallest item in the queue.
- Throws:
EmptyPriorityQueueException- if this queue is empty.
-
deleteMin
public E deleteMin() throws EmptyPriorityQueueException
Description copied from interface:PriorityQueueRemove and return the smallest item from the priority queue.Complexity: O(log n)
- Specified by:
deleteMinin interfacePriorityQueue<E extends java.lang.Comparable<E>>- Returns:
- The smallest item in the queue.
- Throws:
EmptyPriorityQueueException- if this queue is empty.
-
toStringSorted
public java.lang.String toStringSorted()
Creates a multi-lines string representing a sorted view of this binary heap.- Returns:
- a string containing a sorted view this binary heap.
-
toStringSorted
public java.lang.String toStringSorted(int maxElement)
Creates a multi-lines string representing a sorted view of this binary heap.- Parameters:
maxElement- Maximum number of elements to display. or-1to display all the elements.- Returns:
- a string containing a sorted view this binary heap.
-
toStringTree
public java.lang.String toStringTree()
Creates a multi-lines string representing a tree view of this binary heap.- Returns:
- a string containing a tree view of this binary heap.
-
toStringTree
public java.lang.String toStringTree(int maxDepth)
Creates a multi-lines string representing a tree view of this binary heap.- Parameters:
maxDepth- Maximum depth of the tree to display.- Returns:
- a string containing a tree view of this binary heap.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-