BinaryHeap[A: Comparable[A] #read, P: (_BinaryHeapPriority[A] val & (MinHeapPriority[A] val | MaxHeapPriority[A] val))]
Очередь с приоритетом, реализованная в виде бинарной кучи. Параметр типа BinaryHeapPriority определяет, является ли это кучей максимальных или минимальных значений.
class ref BinaryHeap[A: Comparable[A] #read, P: (_BinaryHeapPriority[A] val & (MinHeapPriority[A] val | MaxHeapPriority[A] val))]
Конструкторы
create
Создаёт пустую кучу с местом для len элементов.
new ref create( len: USize val) : BinaryHeap[A, P] ref^
Параметры
- len: USize val
Возвращает
- BinaryHeap[A, P] ref^
Общедоступные функции
clear
Удаляет все элементы из кучи.
fun ref clear() : None val
Возвращает
- None val
size
Возвращает количество элементов в куче.
fun box size() : USize val
Возвращает
- USize val
peek
Возвращает элемент с наивысшим приоритетом в куче. Для кучи максимальных значений возвращается наибольший элемент. Для кучи минимальных значений возвращается наименьший элемент.
fun box peek() : this->A ?
Возвращает
- this->A ?
push
Добавляет элемент в кучу.
Временная сложность этой операции составляет O(log(n)) относительно размера кучи.
fun ref push( value: A) : None val
Параметры
- value: A
Возвращает
- None val
pop
Удаляет элемент с наивысшим приоритетом из кучи и возвращает его. Для кучи максимальных значений возвращается наибольший элемент. Для кучи минимальных значений возвращается наименьший элемент.
Временная сложность этой операции составляет O(log(n)) относительно размера кучи.
fun ref pop() : A^ ?
Возвращает
- A^ ?
append
Добавляет len элементов из последовательности, начиная с заданного смещения.
fun ref append( seq: (ReadSeq[A] box & ReadElement[A^] box), offset: USize val = 0, len: USize val = call) : None val
Параметры
- seq: (ReadSeq[A] box & ReadElement[A^] box)
- offset: USize val = 0
- len: USize val = call
Возвращает
- None val
concat
Добавляет len элементов из итератора, начиная с заданного смещения.
fun ref concat( iter: Iterator[A^] ref, offset: USize val = 0, len: USize val = call) : None val
Параметры
Возвращает
- None val
values
Возвращает итератор для элементов в куче. Порядок элементов произвольный.
fun box values() : ArrayValues[A, this->Array[A] ref] ref^
Возвращает
- ArrayValues[A, this->Array[A] ref] ref^
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/collections-BinaryHeap