diff options
| author | mo khan <mo.khan@gmail.com> | 2020-07-19 12:23:18 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-07-19 12:23:18 -0600 |
| commit | c502a6f592664c0176f3267394aa15b67532e5e3 (patch) | |
| tree | 2ae860f13698e6dafe60156e2508efd7ae83579b | |
| parent | 40f2327bb948268fecccd588fac5f0247a0c9882 (diff) | |
Add program to demonstrate bst check
| -rw-r--r-- | src/02/02/btree.c | 4 | ||||
| -rw-r--r-- | src/02/02/btree.h | 1 | ||||
| -rw-r--r-- | src/02/02/main.c | 38 |
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; } |
