Add iterative version of binary tree traversal and enum to switch algo
This commit is contained in:
@@ -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]);
|
||||
|
||||
Reference in New Issue
Block a user