summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-27 13:17:17 -0600
committermo khan <mo.khan@gmail.com>2020-08-27 13:17:17 -0600
commit74a52d20b88b61bc481e6940dcdb70215f068f7f (patch)
tree60d87bf0aea452cf64441a64268142b009db4e9f
parentb7d1b0175926b57179997c69b2f86e55bbbbd4df (diff)
Insert into root of tree
-rw-r--r--src/03/avl_tree.c26
-rw-r--r--src/03/avl_tree.h13
-rw-r--r--src/03/avl_tree_test.c18
3 files changed, 56 insertions, 1 deletions
diff --git a/src/03/avl_tree.c b/src/03/avl_tree.c
index e69de29..50c6ff3 100644
--- a/src/03/avl_tree.c
+++ b/src/03/avl_tree.c
@@ -0,0 +1,26 @@
+#include "avl_tree.h"
+#include <stdlib.h>
+
+AVLNode *avl_node_init(int value) {
+ AVLNode *node = malloc(sizeof(AVLNode));
+ node->left = NULL;
+ node->right = NULL;
+ node->value = value;
+ return node;
+}
+
+AVLTree *avl_tree_init() {
+ AVLTree *tree = malloc(sizeof(AVLTree));
+ return tree;
+}
+
+int avl_tree_size(AVLTree *tree) {
+ if (tree->root)
+ return 1;
+ else
+ return 0;
+}
+
+void avl_tree_insert(AVLTree *tree, int value) {
+ tree->root = avl_node_init(value);
+}
diff --git a/src/03/avl_tree.h b/src/03/avl_tree.h
index e69de29..b4a67f6 100644
--- a/src/03/avl_tree.h
+++ b/src/03/avl_tree.h
@@ -0,0 +1,13 @@
+typedef struct node {
+ struct node *left;
+ struct node *right;
+ int value;
+} AVLNode;
+
+typedef struct {
+ AVLNode *root;
+} AVLTree;
+
+AVLTree *avl_tree_init(void);
+int avl_tree_size(AVLTree *tree);
+void avl_tree_insert(AVLTree *tree, int value);
diff --git a/src/03/avl_tree_test.c b/src/03/avl_tree_test.c
index 75902d3..5f8c327 100644
--- a/src/03/avl_tree_test.c
+++ b/src/03/avl_tree_test.c
@@ -3,12 +3,28 @@
#include <string.h>
Ensure(initialize_returns_new_tree) {
- assert_that(NULL, is_equal_to(NULL));
+ AVLTree *tree = avl_tree_init();
+ assert_that(tree, is_not_equal_to(NULL));
+}
+
+Ensure(size_returns_zero) {
+ AVLTree *tree = avl_tree_init();
+
+ assert_that(avl_tree_size(tree), is_equal_to(0));
+}
+
+Ensure(insert_changes_size) {
+ AVLTree *tree = avl_tree_init();
+ avl_tree_insert(tree, 33);
+
+ assert_that(avl_tree_size(tree), is_equal_to(1));
}
TestSuite *avl_tree_tests() {
TestSuite *suite = create_test_suite();
add_test(suite, initialize_returns_new_tree);
+ add_test(suite, size_returns_zero);
+ add_test(suite, insert_changes_size);
return suite;
}