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); }
Func <int, int, bool> IThenByTopologicalSortProvider <TElement> .CreateIndexComparison(IReadOnlyList <TElement> items, Func <int, int, bool>?next) { Invariant.Require(next != null); return(next !); }