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);