7 Red-Black Trees
(require pfds/red-black-tree) | package: pfds |
No red node has a red child.
Every path from root to an empty node has the same number of black nodes.
syntax
(RedBlackTree A)
procedure
(redblacktree comp a ...) → (RedBlackTree A)
comp : (A A -> Boolean) a : A
Example: | |||
|
In the above example, the red black tree obtained will have 2 as its root and < as the comparison function.
procedure
(empty? rbt) → Boolean
rbt : (RedBlackTree A)
Examples: | ||||||
|
procedure
(insert a rbt) → (RedBlackTree A)
a : A rbt : (RedBlackTree A)
Example: | |||
|
In the above example, insert adds the 10 to (redblacktree < 1 2 3 4 5 6).
procedure
(root rbt) → A
rbt : (RedBlackTree A)
Examples: | |||||
|
In the above example, (root (redblacktree < 1 2 3 4 5 6)), returns 2 which is the root of (redblacktree < 1 2 3 4 5 6).
procedure
(member? rbt) → Boolean
rbt : (RedBlackTree A)
Examples: | ||||||
|
procedure
(delete-root rbt) → (RedBlackTree A)
rbt : (RedBlackTree A)
Examples: | |||||
|
In the above example, (delete-root rbtree), delete the root of (redblacktree < 1 2 3 4 5 6) which happens to be 2 in this tree.
procedure
(delete elem rbt) → (RedBlackTree A)
elem : A rbt : (RedBlackTree A)
Examples: | |||||
|
In the above example, (delete 5 (redblacktree < 1 2 3 4 5 6)), deletes 5 in (redblacktree < 1 2 3 4 5 6).
procedure
(redblacktree->list rbt) → (Listof A)
rbt : (RedBlackTree A)
Example: | |||
|
procedure
(map comparer func rbt1 rbt2 ...) → (RedBlackTree A)
comparer : (C C -> Boolean) func : (A B ... B -> C) rbt1 : (RedBlackTree A) rbt2 : (RedBlackTree B)
Examples: | ||||||||
|
procedure
(fold func init rbt1 rbt2 ...) → C
func : (C A B ... B -> C) init : C rbt1 : (RedBlackTree A) rbt2 : (RedBlackTree B)
fold currently does not produce correct results when the given function is non-commutative.
Examples: | ||||||
|
procedure
(filter func rbt) → (RedBlackTree A)
func : (A -> Boolean) rbt : (RedBlackTree A)
Examples: | ||||||||||||
|
procedure
(remove func rbt) → (RedBlackTree A)
func : (A -> Boolean) rbt : (RedBlackTree A)
Examples: | |||||||||||||||
|