-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsplay.h
More file actions
27 lines (22 loc) · 743 Bytes
/
splay.h
File metadata and controls
27 lines (22 loc) · 743 Bytes
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
#ifndef SPLAY_H
#define SPLAY_H
typedef int (*comparator)(void *left, void *right);
typedef struct splay_node {
struct splay_node *parent, *left, *right;
void *value;
} splay_node;
typedef struct splay_tree {
splay_node *root;
comparator comp;
int size;
} splay_tree;
extern splay_tree* new_tree(comparator comp);
extern splay_node* insert(splay_tree *tree, void *value);
extern splay_node* find(splay_tree *tree, void *value);
extern splay_node* first(splay_tree *tree);
extern splay_node* next(splay_node *node);
extern splay_node* last(splay_tree *tree);
extern void* contents(splay_tree *tree);
extern void delete(splay_tree *tree, void *value);
extern void delete_hint(splay_tree *tree, splay_node *node);
#endif