6.2.901.900
Leftist Trees
(require data/leftist-tree) | package: leftist-tree |
Leftist trees are immutable priority queues.
procedure
(leftist-tree <=? [xs]) → leftist-tree?
<=? : (-> any/c any/c any/c) xs : sequence? = '()
Makes a new tree containing the elements of xs, ordered by <=?.
Examples: | ||||||||||
|
procedure
(leftist-tree? x) → boolean?
x : any/c
Returns #t if x is a leftist tree, #f otherwise.
Examples: | ||||
|
procedure
t : leftist-tree?
Returns #t if t is empty, #f
otherwise.
Examples: | |||||||
|
procedure
t : leftist-tree?
Returns the number of elements in t.
Examples: | |||||||
|
procedure
(leftist-tree-add t x) → leftist-tree?
t : leftist-tree? x : any/c
Functionally extends t by adding x and
returns the extended tree.
Examples: | ||||||
|
procedure
(leftist-tree-add-all t xs) → leftist-tree?
t : leftist-tree? xs : sequence?
Functionally extends t by adding all elements of
the sequence xs and returns the extended tree.
Examples: | ||||||||
|
procedure
(leftist-tree-min t) → any/c
t : leftist-tree?
Returns the least element in t according to the
tree’s ordering. If the tree is empty, an exception is
raised.
Examples: | ||||||||
|
procedure
t : leftist-tree?
Functionally removes the least element in t
and returns the fresh tree.
Examples: | |||||||||||||
|
procedure
(leftist-tree->list t) → (listof any/c)
t : leftist-tree?
Returns an ordered list of the elements of t.
Examples: | |||||||||||
|
procedure
(in-leftist-tree t) → sequence?
t : leftist-tree?
Returns a sequence that generates the elements of
t in order.
Examples: | |||||||||||||||||||
|