void Swap(int position1, int position2) { HeapElement <T> temp1 = _data[position1]; HeapElement <T> temp2 = _data[position2]; _data[position1] = temp2; _data[position2] = temp1; }
public HeapElement <T> Dequeue() { HeapElement <T> minNode = _data[0]; Swap(0, Count - 1); _data.RemoveLast(); MoveDown(0); return(minNode); }
public void Enqueue(HeapElement <T> element) { _data.Add(element); MoveUp(_data.Count - 1); }