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 9532366c60a2c12f0c26586dd542366807ae28c2 Mon Sep 17 00:00:00 2001 From: aish505 Date: Sat, 1 Nov 2025 00:48:45 +0530 Subject: [PATCH 2/2] Add: Level-order (BFS) Traversal in C++ --- Cpp_Tree_Traversals/level_order.cpp | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Cpp_Tree_Traversals/level_order.cpp diff --git a/Cpp_Tree_Traversals/level_order.cpp b/Cpp_Tree_Traversals/level_order.cpp new file mode 100644 index 0000000..46021ce --- /dev/null +++ b/Cpp_Tree_Traversals/level_order.cpp @@ -0,0 +1,40 @@ + + +#include +using namespace std; + +struct Node { + int data; + Node* left; + Node* right; + Node(int val): data(val), left(nullptr), right(nullptr) {} +}; + +vector level_order(Node* root) { + vector res; + if (!root) return res; + queue q; + q.push(root); + while (!q.empty()) { + Node* node = q.front(); q.pop(); + res.push_back(node->data); + if (node->left) q.push(node->left); + if (node->right) q.push(node->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); + root->right->left = new Node(6); + + auto ans = level_order(root); + cout << "Level Order: "; + for (int v : ans) cout << v << " "; + cout << endl; + return 0; +}