예제 #1
0
        private void SwapElements(int firstIndex, int secondIndex)
        {
            HeapNode tmp = elements[firstIndex];

            elements[firstIndex]  = elements[secondIndex];
            elements[secondIndex] = tmp;
        }
예제 #2
0
        public void Delete(HeapNode item)
        {
            int i    = elements.IndexOf(item);
            int last = elements.Count - 1;

            elements[i] = elements[last];
            elements.RemoveAt(last);
            OrderHeap();
        }
예제 #3
0
        public HeapNode ExtractMin()         //Pop
        {
            if (elements.Count > 0)
            {
                HeapNode item = elements[0];
                Delete(item);
                return(item);
            }

            return(null);
        }
예제 #4
0
 public void Insert(HeapNode item)
 {
     elements.Add(item);
     OrderHeap();
 }