diff options
| author | mo khan <mo.khan@gmail.com> | 2020-08-27 13:17:17 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-08-27 13:17:17 -0600 |
| commit | 74a52d20b88b61bc481e6940dcdb70215f068f7f (patch) | |
| tree | 60d87bf0aea452cf64441a64268142b009db4e9f /src | |
| parent | b7d1b0175926b57179997c69b2f86e55bbbbd4df (diff) | |
Insert into root of tree
Diffstat (limited to 'src')
| -rw-r--r-- | src/03/avl_tree.c | 26 | ||||
| -rw-r--r-- | src/03/avl_tree.h | 13 | ||||
| -rw-r--r-- | src/03/avl_tree_test.c | 18 |
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; } |
