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;
}

आउटपुट

विषम मान वाले नोड हैं -

1 3 9

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

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

  1. सी ++ प्रोग्रामिंग में एक पेड़ के विषम स्तरों पर नोड्स प्रिंट करें।

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

  1. C++ प्रोग्रामिंग में एक बाइनरी ट्री में सभी नोड्स के प्रिंट स्तर।

    बाइनरी ट्री को देखते हुए, कार्य 1 से n तक के नोड में संग्रहीत प्रत्येक कुंजी से जुड़े स्तर को प्रिंट करना है उपरोक्त पेड़ में, नोड्स हैं - 10 लेवल 13 पर और 211 लेवल 2140 पर, 162, 100 और 146 लेवल 3 पर कुंजी को देखते हुए प्रोग्राम को उस विशेष कुंजी के स्तर को प्रिंट करना होगा। उदाहरण एल्गोरिदम न