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}