Class MinMaxBinaryHeap<TKey, TValue>
Implements a MinMaxBinaryHeap and its main operations. Notice that a MaxMinHeapBinaryHeap can be implemented in a very similar way.
Implements
Inherited Members
Namespace: AlgorithmsAndDataStructures.DataStructures.BinaryHeaps
Assembly: AlgorithmsAndDataStructures.dll
Syntax
[DataStructure("MinMaxBinaryHeap")]
public class MinMaxBinaryHeap<TKey, TValue> : BinaryHeapBase<TKey, TValue>, IBinaryHeap<TKey, TValue> where TKey : IComparable<TKey>
Type Parameters
Name | Description |
---|---|
TKey | |
TValue |
Constructors
| Improve this Doc View SourceMinMaxBinaryHeap(List<KeyValuePair<TKey, TValue>>)
Constructor
Declaration
public MinMaxBinaryHeap(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)
Declaration
public override void BubbleDown_Iteratively(int rootIndex, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | rootIndex | |
System.Int32 | heapArrayLength |
Overrides
BubbleDown_Recursively(Int32, Int32)
Recursively 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
BubbleDownMax_Recursively(Int32, Int32)
Bubbles/trickles down the node at the given index, which is on a max/even level.
Declaration
public void BubbleDownMax_Recursively(int rootIndex, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | rootIndex | The index of the node at a max level, from which bubble down starts recursively. |
System.Int32 | heapArrayLength | The length of the heap array. |
BubbleDownMin_Recursively(Int32, Int32)
Bubbles/trickles down the node at the given index, which is on a min/even level.
Declaration
public void BubbleDownMin_Recursively(int rootIndex, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | rootIndex | The index of a node at a min level, from which bubble down starts recursively. |
System.Int32 | heapArrayLength | The length of the heap array. |
BubbleUp_Iteratively(Int32, Int32)
Declaration
public override void BubbleUp_Iteratively(int index, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index | |
System.Int32 | heapArrayLength |
Overrides
BubbleUp_Recursively(Int32, Int32)
Bubbles up the node at the given index.
Declaration
public void BubbleUp_Recursively(int index, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index | The index of a node in the heap array. |
System.Int32 | heapArrayLength | The length of the heap array. |
BubbleUpMax_Recursively(Int32, Int32)
Bubbles up the node at the given index which is assumed to be on a max/odd level.
Declaration
public void BubbleUpMax_Recursively(int index, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index | The index of a node in the heap array. |
System.Int32 | heapArrayLength | The length of the heap array. |
BubbleUpMin_Recursively(Int32, Int32)
Bubbles up the node at the given index which is assumed to be on a min/even level.
Declaration
public void BubbleUpMin_Recursively(int index, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index | The index of a node in the heap array. |
System.Int32 | heapArrayLength | The length of the heap array. |
BuildHeap_Iteratively(Int32)
Declaration
public override void BuildHeap_Iteratively(int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | heapArrayLength |
Overrides
BuildHeap_Recursively(Int32)
Builds an in-place MinMax 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> keyValue, int heapArrayLength)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.KeyValuePair<TKey, TValue> | keyValue | The new key-value pair to be inserted in the tree. |
System.Int32 | heapArrayLength | The length of the heap array. |
Overrides
IsMinLevel(Int32)
Given a node level in a MinMax heap, returns true if that node is on an even level, meaning on a Min level. and false otherwise/
Declaration
public bool IsMinLevel(int level)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | level | The level of a node in a MinMax heap. |
Returns
Type | Description |
---|---|
System.Boolean | True in case of success, and false otherwise. |
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 |