The following types are suitable for representing a tree that has an integer stored at each node. An object of type Node represents one node in a binary tree. It holds an integer item, a pointer to the left subtree and a pointer to the right subtree. Those pointers can be NULL to indicate an empty subtree.
Note that type Tree is identical to type Node*. An empty tree is represented by a NULL pointer.
struct Node { int item; // Information at this node Node* left; // The left subtree Node* right; // The right subtree Node(int it, Node* lft, Node* rgt) { item = it; left = lft; right = rgt; } }; typedef Node* Tree; typedef const Node* ConstTree;