master
 1#include "binary_tree.h"
 2#include <stdio.h>
 3#include <stdlib.h>
 4#include <string.h>
 5
 6static Node *nodes[32];
 7static int visited_count;
 8
 9static void visitor(Node *node) {
10  nodes[visited_count] = node;
11  visited_count++;
12}
13
14void print_traversal(Node *tree, enum Traversal direction) {
15  visited_count = 0;
16  memset(nodes, 0, sizeof(nodes));
17
18  traverse(tree, visitor, direction);
19
20  for (int i = 0; i < visited_count; i++)
21    printf("%d ", nodes[i]->data);
22  printf("\n");
23}
24
25int main(int argc, char *argv[]) {
26  printf("=== COMP-272 - Assignment 02 - Question 01 ===\n");
27
28  Node *a = initialize(100);
29  Node *b = initialize(200);
30  Node *c = initialize(300);
31  Node *d = initialize(400);
32  Node *e = initialize(500);
33
34  a->left = b;
35  a->right = c;
36  b->left = d;
37  b->right = e;
38  inspect(a, 0);
39
40  printf("\n=== Pre order traversal ===\n");
41  print_traversal(a, PREORDER);
42
43  printf("\n=== In order traversal ===\n");
44  print_traversal(a, INORDER);
45
46  printf("\n=== Post order traversal ===\n");
47  print_traversal(a, POSTORDER);
48
49  return 0;
50}