summaryrefslogtreecommitdiff
path: root/src/02/01/binary_tree.h
blob: e30b71ae8e4be0a258840945569dfb6fb9363418 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct node {
  int data;
  struct node *left;
  struct node *right;
};

typedef struct node Node;
typedef void(Visitor)(Node* node);
enum Traversal { INORDER = 1, PREORDER = 2, POSTORDER = 4 };

Node *initialize(int data);
void traverse(Node *node, Visitor visitor, enum Traversal traversal);
void destroy(Node *head);
void inspect(Node *head, int level);