private void SwapElements(int firstIndex, int secondIndex) { HeapNode tmp = elements[firstIndex]; elements[firstIndex] = elements[secondIndex]; elements[secondIndex] = tmp; }
public void Delete(HeapNode item) { int i = elements.IndexOf(item); int last = elements.Count - 1; elements[i] = elements[last]; elements.RemoveAt(last); OrderHeap(); }
public HeapNode ExtractMin() //Pop { if (elements.Count > 0) { HeapNode item = elements[0]; Delete(item); return(item); } return(null); }
public void Insert(HeapNode item) { elements.Add(item); OrderHeap(); }