Add iterative version of binary tree traversal and enum to switch algo

This commit is contained in:
2024-10-30 14:27:57 -04:00
parent 011236f238
commit 54c2054bf2
2 changed files with 177 additions and 16 deletions

View File

@@ -136,7 +136,7 @@ TEST(ChapterFour, TreeTraversal){
int array[10] = {};
btree.RecPreOrderTraversalArray(array);
btree.PreOrderTraversal2Array(array, AlgoVariant::Recursive);
CHECK_EQUAL(1, array[0]);
CHECK_EQUAL(2, array[1]);
CHECK_EQUAL(4, array[2]);
@@ -147,7 +147,7 @@ TEST(ChapterFour, TreeTraversal){
std::fill(array, array+10, 0);
btree.RecInOrderTraversalArray(array);
btree.InOrderTraversal2Array(array, AlgoVariant::Recursive);
CHECK_EQUAL(4, array[0]);
CHECK_EQUAL(2, array[1]);
CHECK_EQUAL(5, array[2]);
@@ -158,7 +158,40 @@ TEST(ChapterFour, TreeTraversal){
std::fill(array, array+10, 0);
btree.RecPostOrderTraversalArray(array);
btree.PostOrderTraversal2Array(array, AlgoVariant::Recursive);
CHECK_EQUAL(4, array[0]);
CHECK_EQUAL(5, array[1]);
CHECK_EQUAL(2, array[2]);
CHECK_EQUAL(6, array[3]);
CHECK_EQUAL(7, array[4]);
CHECK_EQUAL(3, array[5]);
CHECK_EQUAL(1, array[6]);
std::fill(array, array+10, 0);
btree.PreOrderTraversal2Array(array, AlgoVariant::Iter);
CHECK_EQUAL(1, array[0]);
CHECK_EQUAL(2, array[1]);
CHECK_EQUAL(4, array[2]);
CHECK_EQUAL(5, array[3]);
CHECK_EQUAL(3, array[4]);
CHECK_EQUAL(6, array[5]);
CHECK_EQUAL(7, array[6]);
std::fill(array, array+10, 0);
btree.InOrderTraversal2Array(array, AlgoVariant::Iter);
CHECK_EQUAL(4, array[0]);
CHECK_EQUAL(2, array[1]);
CHECK_EQUAL(5, array[2]);
CHECK_EQUAL(1, array[3]);
CHECK_EQUAL(6, array[4]);
CHECK_EQUAL(3, array[5]);
CHECK_EQUAL(7, array[6]);
std::fill(array, array+10, 0);
btree.PostOrderTraversal2Array(array, AlgoVariant::Iter);
CHECK_EQUAL(4, array[0]);
CHECK_EQUAL(5, array[1]);
CHECK_EQUAL(2, array[2]);