Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में बाइनरी ट्री के सभी फुल नोड्स प्रिंट करना


इस समस्या में, हमें एक बाइनरी ट्री दी गई है। हमारा कार्य ट्री के उन सभी नोड्स को प्रिंट करना है जो फुल नोड्स हैं।

बाइनरी ट्री

बाइनरी ट्री एक ट्री है जिसमें एक नोड के अधिकतम 2 चाइल्ड नोड्स हो सकते हैं। नोड या वर्टेक्स में कोई नोड नहीं, एक चाइल्ड या दो चाइल्ड नोड्स हो सकते हैं।

फुल नोड

फुल नोड वह नोड है जिसके बाएं और दाएं दोनों चाइल्ड उपलब्ध हों। दूसरे शब्दों में, बाएं और दाएं चाइल्ड वाला नोड फुल नोड है। उपरोक्त बाइनरी ट्री में, 4 और 9 फुल नोड्स हैं।

उदाहरण

C++ में बाइनरी ट्री के सभी फुल नोड्स प्रिंट करना

आउटपुट - 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

  1. C++ में बाइनरी सर्च ट्री के सभी विषम नोड्स प्रिंट करना C++ में बाइनरी सर्च ट्री के सभी विषम नोड्स प्रिंट करना

    इस समस्या में, हमें एक बाइनरी सर्च ट्री दी गई है और हमें उन सभी नोड्स को प्रिंट करना है जिनके मान विषम हैं। बाइनरी सर्च ट्री बाइनरी सर्च ट्री एक विशेष प्रकार का ट्री है जिसमें निम्नलिखित गुण होते हैं: बायां सबट्री हमेशा रूट नोड से छोटे मान रखता है। दायां सबट्री हमेशा रूट नोड से बड़े मान रखता है।

  1. C++ प्रोग्राम: बाइनरी ट्री के नोड्स को प्रिंट करना जैसे ही वे लीफ नोड बनते हैं C++ प्रोग्राम: बाइनरी ट्री के नोड्स को प्रिंट करना जैसे ही वे लीफ नोड बनते हैं

    एक बाइनरी ट्री दिया गया है, हमें उसके लीफ नोड्स को प्रिंट करना है और फिर उन लीफ नोड्स को हटाना है और फिर तब तक दोहराना है जब तक ट्री में कोई नोड न बचे। उदाहरण तो समस्या का आउटपुट होना चाहिए - 6 7 9 13 14 3 4 2 1 दृष्टिकोण हमने एक ऐसा दृष्टिकोण अपनाया है जहां हम DFS लागू कर रहे हैं। एक अस्थायी म

  1. C++ प्रोग्राम: बाइनरी ट्री में सभी नोड्स के लेवल प्रिंट करना C++ प्रोग्राम: बाइनरी ट्री में सभी नोड्स के लेवल प्रिंट करना

    दिए गए बाइनरी ट्री में, कार्य 1 से n तक शुरू होने वाले प्रत्येक कुंजी से जुड़े लेवल को प्रिंट करना है जो एक नोड में संग्रहीत है। उपरोक्त ट्री में नोड्स हैं - 10 at level 1 3 and 211 at level 2 140, 162, 100 and 146 at level 3 दिए गए कुंजी के लिए प्रोग्राम को उस विशेष कुंजी का लेवल प्रिंट करना होगा।