Commit c502a6f
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;
}