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++ में ट्री की अधिकतम गहराई या ऊंचाई खोजने का प्रोग्राम C++ में ट्री की अधिकतम गहराई या ऊंचाई खोजने का प्रोग्राम

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

  1. C++ में बाइनरी ट्री में निकटतम लीफ ढूंढें C++ में बाइनरी ट्री में निकटतम लीफ ढूंढें

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

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

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