From 46a546ea5082587791f612b5688da9da7f9c0491 Mon Sep 17 00:00:00 2001 From: Debashis Nandi Date: Sun, 15 Sep 2024 22:59:13 +0530 Subject: [PATCH 1/4] recursive and morris traversals added --- Headers/0002_Tree/0001_BinarySearchTree.h | 4 + .../0002_Tree/0001_BinarySearchTree.cc | 103 +++++++++++++++++- Tests/0002_Tree/0001_BinarySearchTreeTest.cc | 56 +++++++++- 3 files changed, 161 insertions(+), 2 deletions(-) diff --git a/Headers/0002_Tree/0001_BinarySearchTree.h b/Headers/0002_Tree/0001_BinarySearchTree.h index 6e4963d..1309cf5 100644 --- a/Headers/0002_Tree/0001_BinarySearchTree.h +++ b/Headers/0002_Tree/0001_BinarySearchTree.h @@ -36,5 +36,9 @@ class BinarySearchTree void InsertNode(int value); void DeleteNode(int value); string GetRecursiveInorderTravesalResult(); + string GetRecursivePreorderTravesalResult(); + string GetRecursivePostorderTravesalResult(); string GetMorrisInorderTraversalResult(); + string GetMorrisPreorderTraversalResult(); + string GetMorrisPostorderTraversalResult(); }; \ No newline at end of file diff --git a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc index 9e8a095..f9ad268 100644 --- a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc +++ b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc @@ -182,8 +182,57 @@ string BinarySearchTree::_RecursiveInorderTraversal(Node* node) result += currentNode; if (!rightSubTree.empty()) { - result += " " + rightSubTree; + result += " "; + } + result += rightSubTree; + return result; +} + +string BinarySearchTree::_RecursivePreorderTraversal(Node* node) +{ + if (node == nullptr) + { + return ""; + } + string currentNode = to_string(node->data); + string leftSubTree = this->_RecursivePreorderTraversal(node->left); + string rightSubTree = this->_RecursivePreorderTraversal(node->right); + + string result = currentNode; + if (!leftSubTree.empty()) + { + result += " "; + } + result += leftSubTree; + if (!rightSubTree.empty()) + { + result += " "; + } + result += rightSubTree; + return result; +} + +string BinarySearchTree::_RecursivePostorderTraversal(Node* node) +{ + if (node == nullptr) + { + return ""; } + string leftSubTree = this->_RecursivePostorderTraversal(node->left); + string rightSubTree = this->_RecursivePostorderTraversal(node->right); + string currentNode = to_string(node->data); + + string result = leftSubTree; + if (!leftSubTree.empty()) + { + result += " "; + } + result += rightSubTree; + if (!rightSubTree.empty()) + { + result += " "; + } + result += currentNode; return result; } @@ -224,6 +273,43 @@ string BinarySearchTree::_MorrisInorderTraversal(Node* node) return result; } +string BinarySearchTree::_MorrisPreorderTraversal(Node* node) +{ + string result = ""; + while (node != nullptr) + { + if (node->left == nullptr) + { + result += to_string(node->data) + " "; + node = node->right; + } + else + { + Node* predecessor = node->left; + while (predecessor->right != nullptr && predecessor->right != node) + { + predecessor = predecessor->right; + } + if (predecessor->right == nullptr) + { + predecessor->right = node; + result += to_string(node->data) + " "; + node = node->left; + } + else + { + predecessor->right = nullptr; + node = node->right; + } + } + } + if (!result.empty()) + { + result.pop_back(); + } + return result; +} + void BinarySearchTree::InsertNode(int value) { Node* node = new Node(value, nullptr, nullptr, nullptr); @@ -241,7 +327,22 @@ string BinarySearchTree::GetRecursiveInorderTravesalResult() return this->_RecursiveInorderTraversal(this->_root); } +string BinarySearchTree::GetRecursivePreorderTravesalResult() +{ + return this->_RecursivePreorderTraversal(this->_root); +} + +string BinarySearchTree::GetRecursivePostorderTravesalResult() +{ + return this->_RecursivePostorderTraversal(this->_root); +} + string BinarySearchTree::GetMorrisInorderTraversalResult() { return this->_MorrisInorderTraversal(this->_root); +} + +string BinarySearchTree::GetMorrisPreorderTraversalResult() +{ + return this->_MorrisPreorderTraversal(this->_root); } \ No newline at end of file diff --git a/Tests/0002_Tree/0001_BinarySearchTreeTest.cc b/Tests/0002_Tree/0001_BinarySearchTreeTest.cc index dec2e0d..2f036c0 100644 --- a/Tests/0002_Tree/0001_BinarySearchTreeTest.cc +++ b/Tests/0002_Tree/0001_BinarySearchTreeTest.cc @@ -5,7 +5,7 @@ // Demonstrate some basic assertions. namespace BinarySearchTreeTest { - TEST(BSTTesting, ShowBSTResultTest) + TEST(BSTInsertData, RecursiveInorderTest) { BinarySearchTree bst; bst.InsertNode(50); @@ -18,4 +18,58 @@ namespace BinarySearchTreeTest EXPECT_EQ(actualResult, expectedResult); } + + TEST(BSTInsertData, RecursivePreorderTest) + { + BinarySearchTree bst; + bst.InsertNode(50); + bst.InsertNode(30); + bst.InsertNode(60); + + string actualResult = bst.GetRecursivePreorderTravesalResult(); + string expectedResult = "50 30 60"; + + EXPECT_EQ(actualResult, expectedResult); + } + + TEST(BSTInsertData, RecursivePostorderTest) + { + BinarySearchTree bst; + bst.InsertNode(50); + bst.InsertNode(30); + bst.InsertNode(60); + + string actualResult = bst.GetRecursivePostorderTravesalResult(); + string expectedResult = "30 60 50"; + + EXPECT_EQ(actualResult, expectedResult); + } + + TEST(BSTInsertData, MorrisInorderTest) + { + BinarySearchTree bst; + bst.InsertNode(50); + bst.InsertNode(30); + bst.InsertNode(60); + + + string actualResult = bst.GetMorrisInorderTraversalResult(); + string expectedResult = "30 50 60"; + + EXPECT_EQ(actualResult, expectedResult); + } + + TEST(BSTInsertData, MorrisPreorderTest) + { + BinarySearchTree bst; + bst.InsertNode(50); + bst.InsertNode(30); + bst.InsertNode(60); + + + string actualResult = bst.GetMorrisPreorderTraversalResult(); + string expectedResult = "50 30 60"; + + EXPECT_EQ(actualResult, expectedResult); + } } \ No newline at end of file From 5cd8d836b812d0700ed8ac542d5116370327c469 Mon Sep 17 00:00:00 2001 From: Debashis Nandi Date: Fri, 20 Sep 2024 02:12:36 +0530 Subject: [PATCH 2/4] CommonUtility testhelper added --- .github/CODEOWNERS | 4 -- .../0002_Tree/0001_BinarySearchTree.cc | 43 +++++++++++++++++++ Tests/0000_CommonUtilities/CMakeLists.txt | 0 Tests/0000_CommonUtilities/UnitTestHelper.h | 22 ++++++++++ Tests/0002_Tree/0001_BinarySearchTreeTest.cc | 19 +++++++- Tests/0002_Tree/CMakeLists.txt | 5 --- Tests/CMakeLists.txt | 1 + 7 files changed, 84 insertions(+), 10 deletions(-) delete mode 100644 .github/CODEOWNERS create mode 100644 Tests/0000_CommonUtilities/CMakeLists.txt create mode 100644 Tests/0000_CommonUtilities/UnitTestHelper.h diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 494f9ea..0000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,4 +0,0 @@ -# CODEOWNERS FILE - -# Ownership for all files -* @Debashis08 \ No newline at end of file diff --git a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc index f9ad268..9681ec9 100644 --- a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc +++ b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc @@ -310,6 +310,44 @@ string BinarySearchTree::_MorrisPreorderTraversal(Node* node) return result; } +string BinarySearchTree::_MorrisPostorderTraversal(Node* node) +{ + string result = ""; + while (node != nullptr) + { + if (node->right == nullptr) + { + result += to_string(node->data) + " "; + node = node->left; + } + else + { + Node* predecessor = node->right; + while (predecessor->left != nullptr && predecessor->left != node) + { + predecessor = predecessor->left; + } + if (predecessor->left == nullptr) + { + predecessor->left = node; + result += to_string(node->data) + " "; + node = node->right; + } + else + { + predecessor->left = nullptr; + node = node->left; + } + } + } + if (!result.empty()) + { + result.pop_back(); + } + reverse(result.begin(), result.end()); + return result; +} + void BinarySearchTree::InsertNode(int value) { Node* node = new Node(value, nullptr, nullptr, nullptr); @@ -345,4 +383,9 @@ string BinarySearchTree::GetMorrisInorderTraversalResult() string BinarySearchTree::GetMorrisPreorderTraversalResult() { return this->_MorrisPreorderTraversal(this->_root); +} + +string BinarySearchTree::GetMorrisPostorderTraversalResult() +{ + return this->_MorrisPostorderTraversal(this->_root); } \ No newline at end of file diff --git a/Tests/0000_CommonUtilities/CMakeLists.txt b/Tests/0000_CommonUtilities/CMakeLists.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/0000_CommonUtilities/UnitTestHelper.h b/Tests/0000_CommonUtilities/UnitTestHelper.h new file mode 100644 index 0000000..af1fbc0 --- /dev/null +++ b/Tests/0000_CommonUtilities/UnitTestHelper.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include +#include +using namespace std; + +template +class UnitTestHelper +{ +public: + string VerifyVectorResult(vector vector) + { + string result = ""; + for (auto iterator : vector) + { + result += to_string(iterator) + " "; + } + result.pop_back(); + return result; + } +}; diff --git a/Tests/0002_Tree/0001_BinarySearchTreeTest.cc b/Tests/0002_Tree/0001_BinarySearchTreeTest.cc index 2f036c0..979f5a9 100644 --- a/Tests/0002_Tree/0001_BinarySearchTreeTest.cc +++ b/Tests/0002_Tree/0001_BinarySearchTreeTest.cc @@ -1,12 +1,14 @@ #include #include #include "../Headers/0002_Tree/0001_BinarySearchTree.h" +#include "../0000_CommonUtilities/UnitTestHelper.h" // Demonstrate some basic assertions. namespace BinarySearchTreeTest { TEST(BSTInsertData, RecursiveInorderTest) { + UnitTestHelper unitTestHelper; BinarySearchTree bst; bst.InsertNode(50); bst.InsertNode(30); @@ -14,9 +16,10 @@ namespace BinarySearchTreeTest string actualResult = bst.GetRecursiveInorderTravesalResult(); + string r = unitTestHelper.VerifyVectorResult({30, 50, 60}); string expectedResult = "30 50 60"; - EXPECT_EQ(actualResult, expectedResult); + EXPECT_EQ(actualResult, r); } TEST(BSTInsertData, RecursivePreorderTest) @@ -72,4 +75,18 @@ namespace BinarySearchTreeTest EXPECT_EQ(actualResult, expectedResult); } + + TEST(BSTInsertData, MorrisPostorderTest) + { + BinarySearchTree bst; + bst.InsertNode(50); + bst.InsertNode(30); + bst.InsertNode(60); + + + string actualResult = bst.GetMorrisPostorderTraversalResult(); + string expectedResult = "30 60 50"; + + EXPECT_EQ(actualResult, expectedResult); + } } \ No newline at end of file diff --git a/Tests/0002_Tree/CMakeLists.txt b/Tests/0002_Tree/CMakeLists.txt index c662127..e2810b3 100644 --- a/Tests/0002_Tree/CMakeLists.txt +++ b/Tests/0002_Tree/CMakeLists.txt @@ -17,13 +17,8 @@ add_executable( target_link_libraries( 0002TreeTests GTest::gtest_main -) - -target_link_libraries( - 0002TreeTests 0002TREE ) - include(GoogleTest) gtest_discover_tests(0002TreeTests) \ No newline at end of file diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 65d79e1..82c38df 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1,3 +1,4 @@ +add_subdirectory(0000_CommonUtilities) add_subdirectory(0001_Basics) add_subdirectory(0002_Tree) add_subdirectory(0003_Graph) From 3f342c79ef8fdbaee195ab35a99eb717aabaaac0 Mon Sep 17 00:00:00 2001 From: Debashis Nandi Date: Sun, 22 Sep 2024 22:31:52 +0530 Subject: [PATCH 3/4] updated implementation and test cases --- Headers/0002_Tree/0001_BinarySearchTree.h | 25 ++-- .../0002_Tree/0001_BinarySearchTree.cc | 141 ++++++------------ Tests/0002_Tree/0001_BinarySearchTreeTest.cc | 19 ++- 3 files changed, 70 insertions(+), 115 deletions(-) diff --git a/Headers/0002_Tree/0001_BinarySearchTree.h b/Headers/0002_Tree/0001_BinarySearchTree.h index 1309cf5..5fac6bb 100644 --- a/Headers/0002_Tree/0001_BinarySearchTree.h +++ b/Headers/0002_Tree/0001_BinarySearchTree.h @@ -1,5 +1,6 @@ #pragma once +#include #include using namespace std; class Node @@ -25,20 +26,20 @@ class BinarySearchTree Node* _FindPredecessorNode(Node* node); void _Transplant(Node* nodeU, Node* nodeV); void _DeleteNode(Node* node); - string _RecursiveInorderTraversal(Node* node); - string _RecursivePreorderTraversal(Node* node); - string _RecursivePostorderTraversal(Node* node); - string _MorrisInorderTraversal(Node* node); - string _MorrisPreorderTraversal(Node* node); - string _MorrisPostorderTraversal(Node* node); + void _RecursiveInorderTraversal(Node* node, vector& result); + void _RecursivePreorderTraversal(Node* node, vector& result); + void _RecursivePostorderTraversal(Node* node, vector& result); + void _MorrisInorderTraversal(Node* node, vector& result); + void _MorrisPreorderTraversal(Node* node, vector& result); + void _MorrisPostorderTraversal(Node* node, vector& result); public: BinarySearchTree(); void InsertNode(int value); void DeleteNode(int value); - string GetRecursiveInorderTravesalResult(); - string GetRecursivePreorderTravesalResult(); - string GetRecursivePostorderTravesalResult(); - string GetMorrisInorderTraversalResult(); - string GetMorrisPreorderTraversalResult(); - string GetMorrisPostorderTraversalResult(); + vector GetRecursiveInorderTravesalResult(); + vector GetRecursivePreorderTravesalResult(); + vector GetRecursivePostorderTravesalResult(); + vector GetMorrisInorderTraversalResult(); + vector GetMorrisPreorderTraversalResult(); + vector GetMorrisPostorderTraversalResult(); }; \ No newline at end of file diff --git a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc index 9681ec9..3724057 100644 --- a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc +++ b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc @@ -164,86 +164,46 @@ void BinarySearchTree::_DeleteNode(Node* node) } } -string BinarySearchTree::_RecursiveInorderTraversal(Node* node) +void BinarySearchTree::_RecursiveInorderTraversal(Node* node, vector& result) { if (node == nullptr) { - return ""; + return; } - string leftSubTree = this->_RecursiveInorderTraversal(node->left); - string currentNode = to_string(node->data); - string rightSubTree = this->_RecursiveInorderTraversal(node->right); - - string result = leftSubTree; - if (!leftSubTree.empty()) - { - result += " "; - } - result += currentNode; - if (!rightSubTree.empty()) - { - result += " "; - } - result += rightSubTree; - return result; + this->_RecursiveInorderTraversal(node->left, result); + result.push_back(node->data); + this->_RecursiveInorderTraversal(node->right, result); } -string BinarySearchTree::_RecursivePreorderTraversal(Node* node) +void BinarySearchTree::_RecursivePreorderTraversal(Node* node, vector& result) { if (node == nullptr) { - return ""; - } - string currentNode = to_string(node->data); - string leftSubTree = this->_RecursivePreorderTraversal(node->left); - string rightSubTree = this->_RecursivePreorderTraversal(node->right); - - string result = currentNode; - if (!leftSubTree.empty()) - { - result += " "; + return; } - result += leftSubTree; - if (!rightSubTree.empty()) - { - result += " "; - } - result += rightSubTree; - return result; + result.push_back(node->data); + this->_RecursivePreorderTraversal(node->left, result); + this->_RecursivePreorderTraversal(node->right, result); } -string BinarySearchTree::_RecursivePostorderTraversal(Node* node) +void BinarySearchTree::_RecursivePostorderTraversal(Node* node, vector& result) { if (node == nullptr) { - return ""; - } - string leftSubTree = this->_RecursivePostorderTraversal(node->left); - string rightSubTree = this->_RecursivePostorderTraversal(node->right); - string currentNode = to_string(node->data); - - string result = leftSubTree; - if (!leftSubTree.empty()) - { - result += " "; - } - result += rightSubTree; - if (!rightSubTree.empty()) - { - result += " "; + return; } - result += currentNode; - return result; + this->_RecursivePostorderTraversal(node->left, result); + this->_RecursivePostorderTraversal(node->right, result); + result.push_back(node->data); } -string BinarySearchTree::_MorrisInorderTraversal(Node* node) +void BinarySearchTree::_MorrisInorderTraversal(Node* node, vector& result) { - string result = ""; while (node != nullptr) { if (node->left == nullptr) { - result += to_string(node->data) + " "; + result.push_back(node->data); node = node->right; } else @@ -261,26 +221,20 @@ string BinarySearchTree::_MorrisInorderTraversal(Node* node) else { predecessor->right = nullptr; - result += to_string(node->data) + " "; + result.push_back(node->data); node = node->right; } } } - if (!result.empty()) - { - result.pop_back(); - } - return result; } -string BinarySearchTree::_MorrisPreorderTraversal(Node* node) +void BinarySearchTree::_MorrisPreorderTraversal(Node* node, vector & result) { - string result = ""; while (node != nullptr) { if (node->left == nullptr) { - result += to_string(node->data) + " "; + result.push_back(node->data); node = node->right; } else @@ -293,7 +247,7 @@ string BinarySearchTree::_MorrisPreorderTraversal(Node* node) if (predecessor->right == nullptr) { predecessor->right = node; - result += to_string(node->data) + " "; + result.push_back(node->data); node = node->left; } else @@ -303,21 +257,15 @@ string BinarySearchTree::_MorrisPreorderTraversal(Node* node) } } } - if (!result.empty()) - { - result.pop_back(); - } - return result; } -string BinarySearchTree::_MorrisPostorderTraversal(Node* node) +void BinarySearchTree::_MorrisPostorderTraversal(Node* node, vector& result) { - string result = ""; while (node != nullptr) { if (node->right == nullptr) { - result += to_string(node->data) + " "; + result.push_back(node->data); node = node->left; } else @@ -330,7 +278,7 @@ string BinarySearchTree::_MorrisPostorderTraversal(Node* node) if (predecessor->left == nullptr) { predecessor->left = node; - result += to_string(node->data) + " "; + result.push_back(node->data); node = node->right; } else @@ -340,12 +288,7 @@ string BinarySearchTree::_MorrisPostorderTraversal(Node* node) } } } - if (!result.empty()) - { - result.pop_back(); - } reverse(result.begin(), result.end()); - return result; } void BinarySearchTree::InsertNode(int value) @@ -360,32 +303,44 @@ void BinarySearchTree::DeleteNode(int value) this->_DeleteNode(node); } -string BinarySearchTree::GetRecursiveInorderTravesalResult() +vector BinarySearchTree::GetRecursiveInorderTravesalResult() { - return this->_RecursiveInorderTraversal(this->_root); + vector result; + this->_RecursiveInorderTraversal(this->_root, result); + return result; } -string BinarySearchTree::GetRecursivePreorderTravesalResult() +vector BinarySearchTree::GetRecursivePreorderTravesalResult() { - return this->_RecursivePreorderTraversal(this->_root); + vector result; + this->_RecursivePreorderTraversal(this->_root, result); + return result; } -string BinarySearchTree::GetRecursivePostorderTravesalResult() +vector BinarySearchTree::GetRecursivePostorderTravesalResult() { - return this->_RecursivePostorderTraversal(this->_root); + vector result; + this->_RecursivePostorderTraversal(this->_root, result); + return result; } -string BinarySearchTree::GetMorrisInorderTraversalResult() +vector BinarySearchTree::GetMorrisInorderTraversalResult() { - return this->_MorrisInorderTraversal(this->_root); + vector result; + this->_MorrisInorderTraversal(this->_root, result); + return result; } -string BinarySearchTree::GetMorrisPreorderTraversalResult() +vector BinarySearchTree::GetMorrisPreorderTraversalResult() { - return this->_MorrisPreorderTraversal(this->_root); + vector result; + this->_MorrisPreorderTraversal(this->_root, result); + return result; } -string BinarySearchTree::GetMorrisPostorderTraversalResult() +vector BinarySearchTree::GetMorrisPostorderTraversalResult() { - return this->_MorrisPostorderTraversal(this->_root); + vector result; + this->_MorrisPostorderTraversal(this->_root, result); + return result; } \ No newline at end of file diff --git a/Tests/0002_Tree/0001_BinarySearchTreeTest.cc b/Tests/0002_Tree/0001_BinarySearchTreeTest.cc index 979f5a9..b7cfd91 100644 --- a/Tests/0002_Tree/0001_BinarySearchTreeTest.cc +++ b/Tests/0002_Tree/0001_BinarySearchTreeTest.cc @@ -3,23 +3,22 @@ #include "../Headers/0002_Tree/0001_BinarySearchTree.h" #include "../0000_CommonUtilities/UnitTestHelper.h" -// Demonstrate some basic assertions. namespace BinarySearchTreeTest { + UnitTestHelper unitTestHelper; + TEST(BSTInsertData, RecursiveInorderTest) { - UnitTestHelper unitTestHelper; BinarySearchTree bst; bst.InsertNode(50); bst.InsertNode(30); bst.InsertNode(60); - string actualResult = bst.GetRecursiveInorderTravesalResult(); - string r = unitTestHelper.VerifyVectorResult({30, 50, 60}); + string actualResult = unitTestHelper.VerifyVectorResult(bst.GetRecursiveInorderTravesalResult()); string expectedResult = "30 50 60"; - EXPECT_EQ(actualResult, r); + EXPECT_EQ(actualResult, expectedResult); } TEST(BSTInsertData, RecursivePreorderTest) @@ -29,7 +28,7 @@ namespace BinarySearchTreeTest bst.InsertNode(30); bst.InsertNode(60); - string actualResult = bst.GetRecursivePreorderTravesalResult(); + string actualResult = unitTestHelper.VerifyVectorResult(bst.GetRecursivePreorderTravesalResult()); string expectedResult = "50 30 60"; EXPECT_EQ(actualResult, expectedResult); @@ -42,7 +41,7 @@ namespace BinarySearchTreeTest bst.InsertNode(30); bst.InsertNode(60); - string actualResult = bst.GetRecursivePostorderTravesalResult(); + string actualResult = unitTestHelper.VerifyVectorResult(bst.GetRecursivePostorderTravesalResult()); string expectedResult = "30 60 50"; EXPECT_EQ(actualResult, expectedResult); @@ -56,7 +55,7 @@ namespace BinarySearchTreeTest bst.InsertNode(60); - string actualResult = bst.GetMorrisInorderTraversalResult(); + string actualResult = unitTestHelper.VerifyVectorResult(bst.GetMorrisInorderTraversalResult()); string expectedResult = "30 50 60"; EXPECT_EQ(actualResult, expectedResult); @@ -70,7 +69,7 @@ namespace BinarySearchTreeTest bst.InsertNode(60); - string actualResult = bst.GetMorrisPreorderTraversalResult(); + string actualResult = unitTestHelper.VerifyVectorResult(bst.GetMorrisPreorderTraversalResult()); string expectedResult = "50 30 60"; EXPECT_EQ(actualResult, expectedResult); @@ -84,7 +83,7 @@ namespace BinarySearchTreeTest bst.InsertNode(60); - string actualResult = bst.GetMorrisPostorderTraversalResult(); + string actualResult = unitTestHelper.VerifyVectorResult(bst.GetMorrisPostorderTraversalResult()); string expectedResult = "30 60 50"; EXPECT_EQ(actualResult, expectedResult); From e6a73898e93bb663a2bb32a56a9b3131bac164f5 Mon Sep 17 00:00:00 2001 From: Debashis Nandi Date: Sun, 22 Sep 2024 22:34:11 +0530 Subject: [PATCH 4/4] Update 0001_BinarySearchTree.cc --- SourceCodes/0002_Tree/0001_BinarySearchTree.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc index 3724057..8b4924f 100644 --- a/SourceCodes/0002_Tree/0001_BinarySearchTree.cc +++ b/SourceCodes/0002_Tree/0001_BinarySearchTree.cc @@ -1,5 +1,6 @@ #include "../Headers/0002_Tree/0001_BinarySearchTree.h" #include +#include using namespace std;