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

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


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

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

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

  • बायां सबट्री हमेशा रूट नोड से छोटे मान रखता है।
  • दायां सबट्री हमेशा रूट नोड से बड़े मान रखता है।
  • बाएं और दाएं दोनों सबट्री को उपरोक्त दो गुणों का पालन करना होगा।

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

उदाहरण

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

आउटपुट - 1 3 9

इस समस्या को हल करने के लिए, एक सरल दृष्टिकोण ट्री को पार करना होगा। ट्रैवर्सल पर, हम ट्री के प्रत्येक नोड के मान की जांच करेंगे। यदि नोड विषम है तो इसे प्रिंट करें अन्यथा ट्री के अगले नोड पर जाएं।

प्रोग्राम की कॉम्प्लेक्सिटी नोड्स की संख्या पर निर्भर करेगी। टाइम कॉम्प्लेक्सिटी: O(n)।

उदाहरण

नीचे दिया गया प्रोग्राम हमारे समाधान का कार्यान्वयन दिखाता है:

#include <bits/stdc++.h> 
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 printOddNodes(Node* root) { 
    if (root != NULL) { 
        printOddNodes(root->left); 
        if (root->key % 2 != 0) 
            cout << root->key << "\t"; 
        printOddNodes(root->right); 
    } 
} 

int main() { 
    Node* root = NULL; 
    root = insertNode(root, 6); 
    root = insertNode(root, 3); 
    root = insertNode(root, 1); 
    root = insertNode(root, 4); 
    root = insertNode(root, 9); 
    root = insertNode(root, 8); 
    root = insertNode(root, 10); 
    cout << "Nodes with odd values are :\n"; 
    printOddNodes(root); 
    return 0; 
}

आउटपुट

Nodes with odd values are -

1 3 9

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

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

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

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

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

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