summaryrefslogtreecommitdiff
path: root/src/02/01/binary_tree.h
blob: 93a6f121e420ecc488c9c0d7d2a7174ff296c4b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
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);