Commit c502a6f

mo khan <mo.khan@gmail.com>
2020-07-19 18:23:18
Add program to demonstrate bst check
1 parent 40f2327
Changed files (3)
src/02/02/btree.c
@@ -37,3 +37,7 @@ BTree *btree_init(int data) {
 bool btree_is_bst(BTree *tree) {
   return in_range(tree, INT_MIN, INT_MAX);
 }
+
+void btree_inspect(BTree *tree) {
+  inspect(tree, 0);
+}
src/02/02/btree.h
@@ -9,3 +9,4 @@ typedef struct btree_node {
 
 BTree *btree_init(int data);
 bool btree_is_bst(BTree *tree);
+void btree_inspect(BTree *tree);
src/02/02/main.c
@@ -1,9 +1,45 @@
-#include "bst.h"
+#include "btree.h"
 #include <stdio.h>
 #include <stdlib.h>
 
+void investigate(BTree *tree) {
+  printf("Tree\n");
+  printf("---------\n");
+  btree_inspect(tree);
+  printf("Is a BST? %c\n\n", btree_is_bst(tree) ? 'y' : 'n');
+}
+
+BTree *build_bst() {
+  BTree *tree = btree_init(10);
+  tree->left = btree_init(-5);
+  tree->left->left = btree_init(-10);
+  tree->left->right = btree_init(5);
+
+  tree->right = btree_init(25);
+  tree->right->left = btree_init(23);
+  tree->right->right = btree_init(36);
+  return tree;
+}
+
+BTree *build_tree() {
+  BTree *tree = btree_init(10);
+  tree->left = btree_init(0);
+  tree->left->left = btree_init(-1);
+  tree->left->right = btree_init(21);
+
+  tree->right = btree_init(25);
+  tree->right->left = btree_init(16);
+  tree->right->right = btree_init(32);
+
+  return tree;
+}
+
 int main(int argc, char *argv[]) {
   printf("=== COMP-272 - Assignment 02 - Question 02 ===\n");
+
+  investigate(build_bst());
+  investigate(build_tree());
+
   printf("Bye\n");
   return 0;
 }