// Items (and Keys) are simply integer values
typedef int Item;
typedef int Key;
// a Tree is represented by a pointer to its root node
typedef struct node *Tree;
// a Node contains its data, plus left and right subtrees
typedef struct node {
int data; Tree left; Tree right;
} Node;
// some macros that we might occasionally use
#define data(tree) ((tree)->data)
#define left(tree) ((tree)->left)
#define right(tree) ((tree)->right)
|