[prev] [index] [next]

Representing BSTs

Typical data structures for trees ...

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