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

C++ प्रोग्राम में बाइनरी ट्री में सबसे गहरे विषम स्तर के नोड की गहराई

इस ट्यूटोरियल में, हम सीखेंगे कि बाइनरी ट्री में सबसे गहरे विषम स्तर के नोड को कैसे खोजा जाए।

यह बाइनरी ट्री की गहराई खोजने के समान है। यहां, हमें एक और शर्त रखनी है यानी कि मौजूदा स्तर विषम है या नहीं।

आइए समस्या को हल करने के लिए चरणों को देखें।

  • डमी डेटा के साथ बाइनरी ट्री को इनिशियलाइज़ करें।

  • बाइनरी ट्री में सबसे गहरे विषम स्तर के नोड को खोजने के लिए एक पुनरावर्ती फ़ंक्शन लिखें।

    • यदि वर्तमान नोड लीफ नोड है और स्तर विषम है, तो वर्तमान स्तर लौटाएं।

    • अन्यथा रिकर्सिव फ़ंक्शन कॉल के साथ अधिकतम बाएं नोड और दाएं नोड लौटाएं।

  • सबसे गहरे विषम स्तर के नोड को प्रिंट करें।

उदाहरण

आइए कोड देखें।

#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   struct Node *left, *right;
};
struct Node* newNode(int data) {
   struct Node* node = (struct Node*) malloc(sizeof(struct Node));
   node->data = data;
   node->left = node->right = NULL;
   return node;
}
int oddLeafDepthInTree(struct Node *root, int level) {
   if (root == NULL) {
      return 0;
   }
   if (root->left == NULL && root->right == NULL && level % 2 == 1) {
      return level;
   }
   return max(oddLeafDepthInTree(root->left, level + 1), oddLeafDepthInTree(root->right, level + 1));
}
int main() {
   struct Node* root = newNode(1);
   root->left = newNode(2);
   root->right = newNode(3);
   root->left->left = newNode(4);
   root->right->left = newNode(5);
   root->right->right = newNode(6);
   root->right->left->right = newNode(7);
   root->right->right->right = newNode(8);
   int level = 1, depth = 0;
   cout << oddLeafDepthInTree(root, level) << endl;
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड को निष्पादित करते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

3

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।


  1. C++ में एक पेड़ की अधिकतम गहराई या ऊँचाई ज्ञात करने के लिए एक प्रोग्राम लिखें

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम किसी दिए गए पेड़ की अधिकतम गहराई या ऊंचाई का पता लगाने के लिए एक प्रोग्राम लिखना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, पेड़ की ऊंचाई 3 होती है। एक पेड़ की अधिकतम ऊँचाई ज्ञात करने के लिए, हम उसके बाएँ और दाएँ उपप्रकार की ऊँचाई

  1. सी ++ में बाइनरी ट्री में निकटतम पत्ता खोजें

    मान लीजिए, एक बाइनरी ट्री दिया गया है। इसमें विभिन्न स्तरों पर पत्ती की गांठें होती हैं। एक और पॉइंटर दिया गया है, जो एक नोड की ओर इशारा कर रहा है। हमें नुकीले नोड से निकटतम लीफ नोड की दूरी ज्ञात करनी होगी। विचार करें कि पेड़ नीचे जैसा है - यहां लीफ नोड्स 2, -2 और 6 हैं। यदि पॉइंटर नोड -5 की ओर इ

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

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