Class MinBinaryHeap<TKey, TValue>
Implements a Min Binary Heap, and its main operations.
Implements
Inherited Members
Namespace: AlgorithmsAndDataStructures.DataStructures.BinaryHeaps
Assembly: AlgorithmsAndDataStructures.dll
Syntax
[DataStructure("MinBinaryHeap")]
public class MinBinaryHeap<TKey, TValue> : BinaryHeapBase<TKey, TValue>, IBinaryHeap<TKey, TValue> where TKey : IComparable<TKey>
Type Parameters
Name | Description |
---|---|
TKey | |
TValue |
Constructors
| Improve this Doc View SourceMinBinaryHeap(List<KeyValuePair<TKey, TValue>>)
Constructor
Declaration
public MinBinaryHeap(List<KeyValuePair<TKey, TValue>> array)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<TKey, TValue>> | array | An array containing key-value pairs |
Methods
| Improve this Doc View SourceBubbleDown_Iteratively(Int32, Int32)
Is the iterative version of MinHeapify_Recursive method.
Declaration
public override void BubbleDown_Iteratively(int rootIndex, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | rootIndex | The index of the node for which bubble down starts. |
System.Int32 | heapArrayLength | The length of the heap array. |
Overrides
BubbleDown_Recursively(Int32, Int32)
Recursively MinHeapifies (bubbles down/trickles down) the given rootIndex.
Declaration
public override void BubbleDown_Recursively(int rootIndex, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | rootIndex | The index of the node for which bubble down starts. |
System.Int32 | heapArrayLength | The length of the heap array. |
Overrides
BubbleUp_Iteratively(Int32, Int32)
Declaration
public override void BubbleUp_Iteratively(int index, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index | |
System.Int32 | heapArrayLength | The length/size of the heap array. |
Overrides
BuildHeap_Iteratively(Int32)
Is the iterative version of BuildMinHeap_Recursive. Expect to see exact same results for these two methods.
Declaration
public override void BuildHeap_Iteratively(int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | heapArrayLength | The length of the heap array. |
Overrides
BuildHeap_Recursively(Int32)
Builds an in-place min heap on the given array.
Declaration
public override void BuildHeap_Recursively(int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | heapArrayLength | The length of the heap array. |
Overrides
Insert(KeyValuePair<TKey, TValue>, Int32)
Inserts a new value into the Min Heap.
Declaration
public override void Insert(KeyValuePair<TKey, TValue> newValue, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.KeyValuePair<TKey, TValue> | newValue | The new key-value pair to be inserted in the tree. |
System.Int32 | heapArrayLength | The length of the heap array. |
Overrides
TryFindRoot(out KeyValuePair<TKey, TValue>, Int32)
This method is for finding the root of the heap, without removing it.
Declaration
public override bool TryFindRoot(out KeyValuePair<TKey, TValue> keyValue, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.KeyValuePair<TKey, TValue> | keyValue | The key-value of the root. |
System.Int32 | heapArrayLength | The length of the heap array. |
Returns
Type | Description |
---|---|
System.Boolean | True in case of success, and false in case of failure. |
Overrides
TryRemoveRoot(out KeyValuePair<TKey, TValue>, Int32)
Removes the min element from the heap.
Declaration
public override bool TryRemoveRoot(out KeyValuePair<TKey, TValue> keyValue, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.KeyValuePair<TKey, TValue> | keyValue | If the operation is successful, contains the minimum element in the array. |
System.Int32 | heapArrayLength | The length of the heap array. |
Returns
Type | Description |
---|---|
System.Boolean | True in case of success, and false otherwise |