private void Expand()
        {
            var capacity          = this._heap.Length;
            var remainingCapacity = this._maxCapacity - capacity;

            Invariant.Require(remainingCapacity > 0, "pq over capacity");
            var newCapacity = remainingCapacity <= capacity ? capacity + remainingCapacity : 2 * capacity;

            Array.Resize(ref this._heap, newCapacity);
        }
        public int Dequeue()
        {
            Invariant.Require(this.Count > 0, "dequeue from empty pq");

            var result = this._heap[0];

            if (--this.Count > 0)
            {
                var last = this._heap[this.Count];
                this.Sink(0, last);
            }

            return(result);
        }
Esempio n. 3
0
 Func <int, int, bool> IThenByTopologicalSortProvider <TElement> .CreateIndexComparison(IReadOnlyList <TElement> items, Func <int, int, bool>?next)
 {
     Invariant.Require(next != null);
     return(next !);
 }