diff options
| author | mo khan <mo.khan@gmail.com> | 2020-08-05 21:14:54 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-08-05 21:14:54 -0600 |
| commit | 8d326c4d934ad821867af1497a14c6445cbe46fe (patch) | |
| tree | 2598ac5599850283968858f7f53e77bea2f5ce39 /src/02 | |
| parent | 10ccd7ed1d4c5b058d67febc4d745c6c27d701ce (diff) | |
Flush out interface for caching traversal results
Diffstat (limited to 'src/02')
| -rw-r--r-- | src/02/05/btree.c | 16 | ||||
| -rw-r--r-- | src/02/05/btree.h | 9 | ||||
| -rw-r--r-- | src/02/05/btree_test.c | 10 |
3 files changed, 32 insertions, 3 deletions
diff --git a/src/02/05/btree.c b/src/02/05/btree.c index 7dea5b8..166e02c 100644 --- a/src/02/05/btree.c +++ b/src/02/05/btree.c @@ -22,6 +22,22 @@ BTree *btree_init(int data) { return tree; } +void btree_pre_order_number(BTree *tree) { + //self + //left + //right +} +void btree_in_order_number(BTree *tree) { + // left + // self + // right +} +void btree_post_order_number(BTree *tree) { + // left + // right + // self +} + BTree *btree_insert(BTree *tree, int data) { if (!tree) return btree_init(data); diff --git a/src/02/05/btree.h b/src/02/05/btree.h index ac0de3c..de43f96 100644 --- a/src/02/05/btree.h +++ b/src/02/05/btree.h @@ -4,12 +4,15 @@ typedef struct btree_node { struct btree_node *left; struct btree_node *right; - int *in_order; - int *post_order; - int *pre_order; + int pre_order[32]; + int in_order[32]; + int post_order[32]; int data; } BTree; BTree *btree_init(int data); BTree *btree_insert(BTree *root, int data); +void btree_in_order_number(BTree *tree); void btree_inspect(BTree *tree); +void btree_post_order_number(BTree *tree); +void btree_pre_order_number(BTree *tree); diff --git a/src/02/05/btree_test.c b/src/02/05/btree_test.c index 70184a5..62e5dd4 100644 --- a/src/02/05/btree_test.c +++ b/src/02/05/btree_test.c @@ -13,6 +13,14 @@ Ensure(BinaryTree, when_the_tree_is_NULL) { assert_that(tree->data, is_equal_to(10)); } +Ensure(BinaryTree, when_the_tree_has_a_single_node_it_returns_the_items_in_order) { + BTree *tree = btree_insert(NULL, 10); + + btree_in_order_number(tree); + + assert_that(tree->in_order[0], is_equal_to(10)); +} + Ensure( BinaryTree, when_inserting_an_item_less_than_the_root_in_a_tree_it_creates_a_node_on_the_left_side) { @@ -93,6 +101,8 @@ Ensure( TestSuite *btree_tests() { TestSuite *suite = create_test_suite(); add_test_with_context(suite, BinaryTree, when_the_tree_is_NULL); + add_test_with_context(suite, BinaryTree, when_the_tree_has_a_single_node_it_returns_the_items_in_order); + add_test_with_context( suite, BinaryTree, when_inserting_an_item_less_than_the_root_in_a_tree_it_creates_a_node_on_the_left_side); |
