blob: d94304f350463bb7e26626e2fddde74b27369140 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#ifndef TREE_H
#define TREE_H
#include <stdbool.h>
#define CHILD_LEFT 0
#define CHILD_RIGHT 1
typedef struct node_struct {
struct node_struct *p;
struct node_struct *children[2];
unsigned int index;
bool black;
char *value;
} node_t;
typedef struct {
node_t *root;
} tree_t;
void tree_print(tree_t *tree);
node_t *tree_insert(tree_t *tree, unsigned int index, char *val);
node_t *tree_insert_pleb(tree_t *tree, unsigned int index, char *val);
void node_rotate(tree_t *tree, node_t *x, int dir);
char *tree_search(tree_t *tree, unsigned int index);
#endif
|