5 typedef struct tree_node
{
6 struct tree_node
* left
, * right
;
8 int size
; /* maintained to be the number of nodes rooted here */
14 splay_tree
* splaytree_splay (splay_tree
*t
, int key
);
15 splay_tree
* splaytree_insert(splay_tree
*t
, int key
, void *data
);
16 splay_tree
* splaytree_delete(splay_tree
*t
, int key
);
17 splay_tree
* splaytree_size(splay_tree
*t
);
19 #define splaytree_size(x) (((x)==NULL) ? 0 : ((x)->size))
20 /* This macro returns the size of a node. Unlike "x->size", */
21 /* it works even if x=NULL. The test could be avoided by using */
22 /* a special version of NULL which was a real node with size 0. */