master
1#include <stdbool.h>
2
3enum Colour {
4 black = 0x01,
5 red = 0x00,
6};
7
8typedef struct rb_node {
9 struct rb_node *left;
10 struct rb_node *parent;
11 struct rb_node *right;
12 enum Colour colour;
13 int value;
14} RBTree;
15
16RBTree *rb_tree_initialize(int value);
17RBTree *rb_tree_initialize_with(int value, enum Colour colour);
18RBTree *rb_tree_insert(RBTree *tree, int value);
19RBTree *rb_tree_find(RBTree *tree, int value);
20bool rb_equals(RBTree *tree, RBTree *other_tree);
21bool rb_tree_is_valid(RBTree *tree);
22int rb_tree_size(RBTree *tree);
23void rb_tree_inspect(RBTree *tree);
24int rb_tree_height(RBTree *tree);