इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम पेड़ के सभी नोड्स को प्रिंट करना है जो पूर्ण नोड्स हैं।
बाइनरी ट्री एक पेड़ है जिसमें एक नोड में अधिकतम 2 चाइल्ड नोड हो सकते हैं। नोड या वर्टेक्स में कोई नोड नहीं हो सकता है, एक बच्चा या दो चाइल्ड नोड हो सकते हैं।
उदाहरण -
एक पूर्ण नोड एक नोड है जिसमें इसके बाएँ और दाएँ दोनों बच्चे उपलब्ध हैं। दूसरे शब्दों में, बाएं और दाएं बच्चे वाला नोड एक पूर्ण नोड है। उपरोक्त बाइनरी ट्री में, 4 और 9 पूर्ण नोड हैं।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -
आउटपुट - 4 9
इस समस्या को हल करने का एक सरल और आसान तरीका किसी भी ट्रैवर्सल एल्गोरिथम का उपयोग करके पेड़ को पार करना है। जांचें कि क्या वर्तमान नोड में बाएं और दाएं बच्चे या नोड हैं। यदि हाँ तो नोड के मूल्य को प्रिंट करें अन्यथा इसे छोड़ दें।
उदाहरण
हमारे समाधान को स्पष्ट करने के लिए कार्यक्रम,
#include <iostream> using namespace std; struct Node{ int data; struct Node *left, *right; }; Node *insertNode(int data){ Node *temp = new Node; temp->data = data; temp->left = temp->right = NULL; return temp; } void printFullNode(Node *root){ if (root != NULL){ printFullNode(root->left); if (root->left != NULL && root->right != NULL) cout<<root->data<<"\t"; printFullNode(root->right); } } int main(){ Node* root = insertNode(100); root->left = insertNode(56); root->right = insertNode(12); root->left->left = insertNode(89); root->right->left = insertNode(32); root->right->right = insertNode(45); cout<<"All full nodes of the tree are :\n"; printFullNode(root); return 0; }
आउटपुट
All full nodes of the tree are − 100 12हैं