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

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


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

बाइनरी सर्च ट्री

बाइनरी सर्च ट्री एक बाइनरी ट्री है जो निम्नलिखित शर्तों का पालन करता है:

  • बायां सब-ट्री हमेशा पैरेंट नोड से छोटे मान वाले नोड्स रखता है।
  • दायां सब-ट्री हमेशा पैरेंट नोड से बड़े मान वाले नोड्स रखता है।
  • सभी नोड्स को उपरोक्त 2 नियमों का पालन करना होगा।

उदाहरण

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

आउटपुट - 2 4 6 8

इस समस्या को हल करने के लिए, हमें बाइनरी सर्च ट्री के सभी नोड्स को पार करना होगा और वर्तमान नोड के मान की जांच करनी होगी। यदि यह सम है तो नोड प्रिंट करें अन्यथा छोड़ दें।

उदाहरण

नीचे दिया गया कोड हमारे तर्क के कार्यान्वयन को दिखाएगा:

#include <iostream> 
using namespace std; 

struct Node { 
    int key; 
    struct Node *left, *right; 
}; 

Node* newNode(int item) { 
    Node* temp = new Node; 
    temp->key = item; 
    temp->left = temp->right = NULL; 
    return temp; 
} 

Node* insertNode(Node* node, int key) { 
    if (node == NULL) 
        return newNode(key); 
    if (key < node->key) 
        node->left = insertNode(node->left, key); 
    else 
        node->right = insertNode(node->right, key); 
    return node; 
} 

void printEvenNode(Node* root) { 
    if (root != NULL) { 
        printEvenNode(root->left); 
        if (root->key % 2 == 0) 
            cout << root->key << "\t"; 
        printEvenNode(root->right); 
    } 
} 

int main() { 
    Node* root = NULL; 
    root = insertNode(root, 54); 
    root = insertNode(root, 43); 
    root = insertNode(root, 12); 
    root = insertNode(root, 30); 
    root = insertNode(root, 89); 
    root = insertNode(root, 67); 
    root = insertNode(root, 80); 
    cout << "All even nodes of the tree are :\n"; 
    printEvenNode(root); 
    return 0; 
}

आउटपुट

All even nodes of the tree are -

12 30 54 80

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

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

  1. C++ में बाइनरी ट्री को बाइनरी सर्च ट्री में रूपांतरण C++ में बाइनरी ट्री को बाइनरी सर्च ट्री में रूपांतरण

    एक बाइनरी ट्री एक विशेष प्रकार का ट्री है जिसमें ट्री का प्रत्येक नोड अधिकतम दो चाइल्ड नोड रख सकता है। इन चाइल्ड नोड्स को राइट चाइल्ड और लेफ्ट चाइल्ड के नाम से जाना जाता है। एक साधारण बाइनरी ट्री है - बाइनरी सर्च ट्री (BST) एक विशेष प्रकार का ट्री है जो निम्नलिखित नियमों का पालन करता है - बाएं चाइ

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

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