From e7aaed86969573965ed4201e881aa61a86df50f4 Mon Sep 17 00:00:00 2001 From: aish505 Date: Sat, 1 Nov 2025 00:01:47 +0530 Subject: [PATCH 1/2] Add: Recursive Inorder Traversal in C++ --- Cpp_Tree_Traversals/recursive_inorder.cpp | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Cpp_Tree_Traversals/recursive_inorder.cpp diff --git a/Cpp_Tree_Traversals/recursive_inorder.cpp b/Cpp_Tree_Traversals/recursive_inorder.cpp new file mode 100644 index 0000000..b1e4417 --- /dev/null +++ b/Cpp_Tree_Traversals/recursive_inorder.cpp @@ -0,0 +1,31 @@ + +#include +using namespace std; + +struct Node { + int data; + Node* left; + Node* right; + Node(int val) : data(val), left(nullptr), right(nullptr) {} +}; + +void inorder(Node* root) { + if (!root) return; + inorder(root->left); + cout << root->data << " "; + inorder(root->right); +} + +int main() { + // sample tree + Node* root = new Node(1); + root->left = new Node(2); + root->right = new Node(3); + root->left->left = new Node(4); + root->left->right = new Node(5); + + cout << "Inorder Traversal: "; + inorder(root); + cout << endl; + return 0; +} From ba646dca39db235e6523fcd09d177c5e2a179d03 Mon Sep 17 00:00:00 2001 From: aish505 Date: Sat, 1 Nov 2025 00:44:46 +0530 Subject: [PATCH 2/2] Add: Iterative (stack) Inorder Traversal in C++ --- Cpp_Tree_Traversals/stack_inorder.cpp | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Cpp_Tree_Traversals/stack_inorder.cpp diff --git a/Cpp_Tree_Traversals/stack_inorder.cpp b/Cpp_Tree_Traversals/stack_inorder.cpp new file mode 100644 index 0000000..91f6b74 --- /dev/null +++ b/Cpp_Tree_Traversals/stack_inorder.cpp @@ -0,0 +1,41 @@ + + +#include +using namespace std; + +struct Node { + int data; + Node* left; + Node* right; + Node(int val): data(val), left(nullptr), right(nullptr) {} +}; + +vector iterative_inorder(Node* root) { + vector res; + stack st; + Node* curr = root; + while (curr || !st.empty()) { + while (curr) { + st.push(curr); + curr = curr->left; + } + curr = st.top(); st.pop(); + res.push_back(curr->data); + curr = curr->right; + } + return res; +} + +int main() { + Node* root = new Node(1); + root->left = new Node(2); + root->right = new Node(3); + root->left->left = new Node(4); + root->left->right = new Node(5); + + auto ans = iterative_inorder(root); + cout << "Iterative Inorder: "; + for (int v : ans) cout << v << " "; + cout << endl; + return 0; +}