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

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


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

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

  • बाएं उप-पेड़ में हमेशा मूल नोड की तुलना में छोटे मान वाले नोड होते हैं।

  • ठीक है, उप-वृक्ष में हमेशा मूल नोड से अधिक मान वाले नोड होते हैं।

  • सभी नोड्स को उपरोक्त 2 नियमों का पालन करना होगा।

बाइनरी सर्च ट्री का उदाहरण -

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

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -

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

आउटपुट

पेड़ के सभी सम नोड्स हैं -

12 30 54 80

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

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

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

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

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

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