summaryrefslogtreecommitdiff
path: root/src/02/01/main.c
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-04 19:58:26 -0600
committermo khan <mo.khan@gmail.com>2020-08-04 19:58:37 -0600
commit6dd72268c1fae4f56b95f9a405eadcb5259e5686 (patch)
treeda8e0fb9af57a21ebf3c5a346c7c51bc34895503 /src/02/01/main.c
parent08d2c8d0264219ee020824534a33bfda1e288a43 (diff)
Print out binary tree
Diffstat (limited to 'src/02/01/main.c')
-rw-r--r--src/02/01/main.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/02/01/main.c b/src/02/01/main.c
index a16f695..81bbf2f 100644
--- a/src/02/01/main.c
+++ b/src/02/01/main.c
@@ -1,9 +1,40 @@
#include "binary_tree.h"
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
+
+static Node *nodes[32];
+static int visited_count;
+
+static void visitor(Node *node) {
+ nodes[visited_count] = node;
+ visited_count++;
+}
int main(int argc, char *argv[]) {
printf("=== COMP-272 - Assignment 02 - Question 01 ===\n");
- printf("Bye\n");
+
+ Node *a = initialize(100);
+ Node *b = initialize(200);
+ Node *c = initialize(300);
+ Node *d = initialize(400);
+ Node *e = initialize(500);
+
+ a->left = b;
+ a->right = c;
+ b->left = d;
+ b->right = e;
+ inspect(a, 0);
+
+ printf("\n=== Preorder traversal ===\n");
+ int visited_count = 0;
+ memset(nodes, 0, sizeof(nodes));
+
+ traverse(a, visitor, PREORDER);
+
+ for (int i = 0; i < visited_count; i++) {
+ printf("%d", nodes[i]->data);
+ }
+
return 0;
}