示例#1
0
        private void Allocate()
        {
            int newCapacity = (int)(_array.Length * _increaseSizeFactor);

            MinHeapNode <T>[] newArray = new MinHeapNode <T> [newCapacity];

            Array.Copy(_array, newArray, _array.Length);

            int lastCapacity = _array.Length;

            _array = newArray;

            InitRange(lastCapacity, _array.Length);
        }
示例#2
0
        public T ExtractMin()
        {
            if (_count < 0)
            {
                throw new ArgumentOutOfRangeException();
            }

            MinHeapNode <T> min = _array[0];

            _array[0] = _array[_count - 1];

            RemoveLast();

            MinHeapify(0);

            return(min.Data);
        }