
rbtrees.pl -- Red black trees
Red-Black trees are balanced search binary trees. They are named because nodes can be classified as either red or black. The code we include is based on "Introduction to Algorithms", second edition, by Cormen, Leiserson, Rivest and Stein. The library includes routines to insert, lookup and delete elements in the tree.
A Red black tree is represented as a term t(Nil, Tree)
, where Nil is the
Nil-node, a node shared for each nil-node in the tree. Any node has the
form colour(Left, Key, Value, Right)
, where colour is one of red
or
black
.
rb_new(-Tree) is det
- Create a new Red-Black tree Tree.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.
rb_empty(Arg1)
rb_lookup(Arg1, Arg2, Arg3)
rb_in(Arg1, Arg2, Arg3)
rb_del_max(Arg1, Arg2, Arg3, Arg4)
rb_del_min(Arg1, Arg2, Arg3, Arg4)
rb_previous(Arg1, Arg2, Arg3, Arg4)
rb_next(Arg1, Arg2, Arg3, Arg4)
list_to_rbtree(Arg1, Arg2)
ord_list_to_rbtree(Arg1, Arg2)
is_rbtree(Arg1)
rb_size(Arg1, Arg2)
rb_min(Arg1, Arg2, Arg3)
rb_max(Arg1, Arg2, Arg3)
rb_partial_map(Arg1, Arg2, Arg3, Arg4)
rb_clone(Arg1, Arg2, Arg3)
rb_map(Arg1, Arg2, Arg3)
rb_fold(Arg1, Arg2, Arg3, Arg4)
rb_map(Arg1, Arg2)
rb_keys(Arg1, Arg2)
rb_visit(Arg1, Arg2)
rb_update(Arg1, Arg2, Arg3, Arg4)
rb_update(Arg1, Arg2, Arg3, Arg4, Arg5)
rb_apply(Arg1, Arg2, Arg3, Arg4)
rb_insert(Arg1, Arg2, Arg3, Arg4)
rb_insert_new(Arg1, Arg2, Arg3, Arg4)
rb_delete(Arg1, Arg2, Arg3)
rb_delete(Arg1, Arg2, Arg3, Arg4)