Spec-Zone.ru › Pony

BinaryHeap[A: Comparable[A] #read, P: (_BinaryHeapPriority[A] val & (MinHeapPriority[A] val | MaxHeapPriority[A] val))]

[Source]

Очередь с приоритетом, реализованная в виде бинарной кучи. Параметр типа BinaryHeapPriority определяет, является ли это кучей максимальных или минимальных значений.

class ref BinaryHeap[A: Comparable[A] #read, P: (_BinaryHeapPriority[A] val & (MinHeapPriority[A] val | MaxHeapPriority[A] val))]

Конструкторы

create

[Source]

Создаёт пустую кучу с местом для len элементов.

new ref create(
  len: USize val)
: BinaryHeap[A, P] ref^

Параметры

  • len: USize val

Возвращает

  • BinaryHeap[A, P] ref^

Общедоступные функции

clear

[Source]

Удаляет все элементы из кучи.

fun ref clear()
: None val

Возвращает

  • None val

size

[Source]

Возвращает количество элементов в куче.

fun box size()
: USize val

Возвращает

  • USize val

peek

[Source]

Возвращает элемент с наивысшим приоритетом в куче. Для кучи максимальных значений возвращается наибольший элемент. Для кучи минимальных значений возвращается наименьший элемент.

fun box peek()
: this->A ?

Возвращает

  • this->A ?

push

[Source]

Добавляет элемент в кучу.

Временная сложность этой операции составляет O(log(n)) относительно размера кучи.

fun ref push(
  value: A)
: None val

Параметры

  • value: A

Возвращает

  • None val

pop

[Source]

Удаляет элемент с наивысшим приоритетом из кучи и возвращает его. Для кучи максимальных значений возвращается наибольший элемент. Для кучи минимальных значений возвращается наименьший элемент.

Временная сложность этой операции составляет O(log(n)) относительно размера кучи.

fun ref pop()
: A^ ?

Возвращает

  • A^ ?

append

[Source]

Добавляет 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

[Source]

Добавляет len элементов из итератора, начиная с заданного смещения.

fun ref concat(
  iter: Iterator[A^] ref,
  offset: USize val = 0,
  len: USize val = call)
: None val

Параметры

  • iter: Iterator[A^] ref
  • offset: USize val = 0
  • len: USize val = call

Возвращает

  • None val

values

[Source]

Возвращает итератор для элементов в куче. Порядок элементов произвольный.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API