इस समस्या में, हमें एक बाइनरी ट्री दी गई है। हमारा कार्य ट्री के उन सभी नोड्स को प्रिंट करना है जो फुल नोड्स हैं।
बाइनरी ट्री
बाइनरी ट्री एक ट्री है जिसमें एक नोड के अधिकतम 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