inherits
State supers: State, MutableCollection
variables
The array used to store the elements.
The number of elements. This is equal to [elements length].
The selector used to have two elements compare themselves. If this isn't set, i_compare_r will be used.
If this is TRUE, this is a heap of which the root node is the largest. Otherwise, the root is the smallest node.
methods
id
init;
|
Invoke [self init TRUE].
id (self) init boolean root_is_max; |
Designated initializer.
boolean
dump_simple_p;
|
Return NO.
Any extract_min pre !max_heap; |
Extract the root of the heap, which must be a heap storing the minimum value at its root.
int index_of_element All element; |
Return the index of the element in this heap. Used by elements that do not remember their own index.
Any (object) min pre !max_heap; |
Return the minimum value of the heap, which must be a heap storing the minimum value at its root. Return nil if the heap is empty.
Any extract_max pre max_heap; |
Extract the root of the heap, which must be a heap which stores the maximum value at its root.
Any (object) max pre max_heap; |
Return the maximum value of the heap, which must be a heap storing the maximum value at its root. Return nil if the heap is empty.
Any (object) extract_root pre length > 0 post length == old length - 1; |
Extract and return the root object of the heap.
Any (object) root pre length > 0; |
Return the root object of the heap, without extracting it.
void remove Comparable elt; |
Remove the elt from the receiving heap. The elt should be an element of the heap.
void add Comparable object post length == 1 + old length; |
Add the object to this Heap.
void addElementsFromEnumerator Enumerator e; |
Undocumented.
void
empty;
|
Remove all elements.
Enumerator enumerator; |
Return an enumerator on the elements of this heap. Note that the order of the elements returned is undefined.
protected void
build_heap;
|
Build a heap from the elements already in elements.
int compare (Comparable, Comparable) (one, other); |
Let one compare itself with the other, either using the compare_selector, or, if not set, the int compare id method.
protected void heapify int index; |
Heapify from the node at index i (which is off by 1 compared to the index of the element in the elements array).