/// <summary> /// Add object to heap and situate it in its place. /// </summary> /// <param name="Object">Added object</param> /// <param name="priority">Priority of said object</param> public void Add(T Object, float priority) { if (Count == Capacity) { var heapNodeArray = new HeapNode <T> [_nodes.Length << 2]; _nodes.CopyTo(heapNodeArray, 0); _nodes = heapNodeArray; } var i = _c; _nodes[i] = new HeapNode <T>(Object, priority); TravelUp(i); _containing.Add(Object); _c = _c + 1; }
private bool Comp(HeapNode <T> me, HeapNode <T> parent) { return(MinHeap ? me <parent : me> parent); }