बाइनरी ट्री का लेवल ऑर्डर ट्रैवर्सल (BFS) करने का प्रोग्राम। इसमें हम स्तर दर स्तर नोड्स को विजिट करते हैं।
उदाहरण ट्री के लिए ट्रैवर्सल क्रम: [1, 2, 3, 5, 4]।
एल्गोरिदम
- एक क्यू बनाएं और रूट डालें।
- जब तक क्यू खाली नहीं:
- सामने का नोड निकालें, उसका मान प्रिंट/संग्रहीत करें।
- बाएं बच्चे को क्यू में डालें (यदि मौजूद है)।
- दाएं बच्चे को क्यू में डालें (यदि मौजूद है)।
C++ कार्यान्वयन
#include <bits/stdc++.h> using namespace std; void print_vector(vectorv) { cout << "["; for (int i = 0; i < v.size(); i++) cout << v[i] << ", "; cout << "]" << endl; } class TreeNode { public: int val; TreeNode *left, *right; TreeNode(int data) { val = data; left = right = NULL; } }; class Solution { public: vector solve(TreeNode* root) { if (!root) return {}; vector ret; queue q; q.push(root); while (!q.empty()) { TreeNode* node = q.front(); q.pop(); ret.push_back(node->val); if (node->left) q.push(node->left); if (node->right) q.push(node->right); } return ret; } }; int main() { TreeNode *root = new TreeNode(1); root->left = new TreeNode(2); root->right = new TreeNode(3); root->left->right = new TreeNode(5); root->right->right = new TreeNode(4); Solution ob; print_vector(ob.solve(root)); return 0; }
इनपुट
TreeNode *root = new TreeNode(1); root->left = new TreeNode(2); root->right = new TreeNode(3); root->left->right = new TreeNode(5); root->right->right = new TreeNode(4);
आउटपुट
[1, 2, 3, 5, 4, ]