Commit 8d326c4

mo khan <mo.khan@gmail.com>
2020-08-06 03:14:54
Flush out interface for caching traversal results
1 parent 10ccd7e
Changed files (3)
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);
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);
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);