summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-07-19 12:23:18 -0600
committermo khan <mo.khan@gmail.com>2020-07-19 12:23:18 -0600
commitc502a6f592664c0176f3267394aa15b67532e5e3 (patch)
tree2ae860f13698e6dafe60156e2508efd7ae83579b
parent40f2327bb948268fecccd588fac5f0247a0c9882 (diff)
Add program to demonstrate bst check
-rw-r--r--src/02/02/btree.c4
-rw-r--r--src/02/02/btree.h1
-rw-r--r--src/02/02/main.c38
3 files changed, 42 insertions, 1 deletions
diff --git a/src/02/02/btree.c b/src/02/02/btree.c
index a129420..67b32de 100644
--- a/src/02/02/btree.c
+++ b/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);
+}
diff --git a/src/02/02/btree.h b/src/02/02/btree.h
index 52e24a9..cdfbd9d 100644
--- a/src/02/02/btree.h
+++ b/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);
diff --git a/src/02/02/main.c b/src/02/02/main.c
index fb9b722..a6eca8c 100644
--- a/src/02/02/main.c
+++ b/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;
}