HeapPriorityQueue<E> class

Heap based priority queue.

The elements are kept in a heap structure, where the element with the highest priority is immediately accessible, and modifying a single element takes logarithmic time in the number of elements on average.

  • The add and removeFirst operations take amortized logarithmic time, O(log(n)), but may occasionally take linear time when growing the capacity of the heap.
  • The addAll operation works as doing repeated add operations.
  • The first getter takes constant time, O(1).
  • The clear and removeAll methods also take constant time, O(1).
  • The contains and remove operations may need to search the entire queue for the elements, taking O(n) time.
  • The toList operation effectively sorts the elements, taking O(n*log(n)) time.
  • The toUnorderedList operation copies, but does not sort, the elements, and is linear, O(n).
  • The toSet operation effectively adds each element to the new set, taking an expected O(n*log(n)) time.
Implemented types

Constructors

HeapPriorityQueue([int comparison(E, E)?])
Create a new priority queue.

Properties

comparison Comparator<E>
The comparison being used to compare the priority of elements.
final
first → E
Returns the next element that will be returned by removeFirst.
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
isEmpty bool
Whether the queue is empty.
no setteroverride
isNotEmpty bool
Whether the queue has any elements.
no setteroverride
length int
Number of elements in the queue.
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
unorderedElements Iterable<E>
Provides efficient access to all the elements currently in the queue.
no setteroverride

Methods

add(E element) → void
Adds element to the queue.
override
addAll(Iterable<E> elements) → void
Adds all elements to the queue.
override
clear() → void
Removes all the elements from this queue.
override
contains(E object) bool
Checks if object is in the queue.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
remove(E element) bool
Removes an element of the queue that compares equal to element.
override
removeAll() Iterable<E>
Removes all the elements from this queue and returns them.
override
removeFirst() → E
Removes and returns the element with the highest priority.
override
toList() List<E>
Returns a list of the elements of this queue in priority order.
override
toSet() Set<E>
Return a comparator based set using the comparator of this queue.
override
toString() String
Returns some representation of the queue.
override
toUnorderedList() List<E>
Returns a list of the elements of this queue in no specific order.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited