160 inline bool IsEmpty() {
return (m_MinRoot ==
nullptr); }
219 FibHeapNode* m_MinRoot;
222 long m_NumMarkedNodes;
223 FibHeapNode* m_HeapNodes;
unsigned int NodeIndexType
bool operator<(FibHeapNode &RHS)
Compare key value.
NodeIndexType GetIndexValue()
Index stores this node's location in the node array.
bool operator==(FibHeapNode &RHS)
Compare key value.
static const NodeIndexType NullNodeIndex
void operator=(NodeKeyValueType newKeyVal)
Set key value (that the nodes are sorted based on)
static const NodeKeyValueType NegativeInfinity
void SetIndexValue(NodeIndexType indexValue)
void operator=(FibHeapNode &RHS)
Set key value from another node.
NodeKeyValueType GetKeyValue()
FibHeapNode * ExtractMin()
ExtractMin() - O(n) worst-case actual; O(lg n) amortized.
FibHeapNode * Minimum()
Minimum - O(1) actual; O(1) amortized.
int DecreaseKey(FibHeapNode *theNode, NodeKeyValueType keyValue)
void SetHeapNodes(FibHeapNode *heapNodes)
void Union(FibHeap *OtherHeap)
Union() - O(1) actual; O(1) amortized.
void Insert(FibHeapNode *NewNode)
int Delete(FibHeapNode *theNode)
void Print(FibHeapNode *Tree=nullptr, FibHeapNode *theParent=nullptr)