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

सी++ प्रोग्राम में एन-आरी ट्री की गहराई

इस ट्यूटोरियल में, हम सीखेंगे कि एन-आरी ट्री की गहराई कैसे पता करें।

एक एन-आर्य पेड़ एक ऐसा पेड़ है जिसमें पेड़ के प्रत्येक नोड में n . से अधिक नहीं होता है चाइल्ड नोड्स।

हमें n-ary वृक्ष की गहराई ज्ञात करनी है। हम पेड़ में प्रत्येक नोड के बच्चों को संग्रहीत करने के लिए वेक्टर का उपयोग करेंगे।

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

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

  • n-ary पेड़ की गहराई ज्ञात करने के लिए पुनरावर्ती फलन लिखिए।

    • पेड़ की अधिकतम गहराई को स्टोर करने के लिए एक वैरिएबल को इनिशियलाइज़ करें।

    • प्रत्येक नोड के बच्चों पर पुनरावृति करें।

      • अधिकतम गहराई वर्तमान अधिकतम गहराई और नोड चिल्ड्रन की गहराई का अधिकतम है।

      • यदि हम मान लें कि अधिकतम गहराई चर maxDepth . है और maxDepth =max(maxDepth, findDepthOfTree(*child) पेड़ की गहराई का पता लगाने के लिए पुनरावर्ती कथन है।

    • पेड़ की अंतिम अधिकतम गहराई maxDepth + 1 . है ।

  • पेड़ की अधिकतम गहराई प्रिंट करें।

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   vector<Node *> child;
};
Node *newNode(int data) {
   Node *temp = new Node;
   temp->data = data;
   return temp;
}
int findDepthOfTree(struct Node *node) {
   if (node == NULL) {
      return 0;
   }
   int maxDepth = 0;
   for (vector<Node*>::iterator it = node->child.begin(); it != node->child.end(); it++) {
      maxDepth = max(maxDepth, findDepthOfTree(*it));
   }
   return maxDepth + 1;
}
int main() {
   Node *root = newNode(1);
   root->child.push_back(newNode(2));
   root->child.push_back(newNode(3));
   root->child.push_back(newNode(4));
   root->child[2]->child.push_back(newNode(1));
   root->child[2]->child.push_back(newNode(2));
   root->child[2]->child.push_back(newNode(3));
   root->child[2]->child.push_back(newNode(4));
   cout << findDepthOfTree(root) << endl;
   return 0;
}

आउटपुट

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

3

निष्कर्ष

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


  1. पायथन में एक एन-आरी पेड़ का व्यास खोजने का कार्यक्रम

    मान लीजिए, हमें एक एन-आरी पेड़ दिया गया है और कहा जाता है कि पेड़ का व्यास निर्धारित करें। पेड़ का व्यास सबसे लंबा रास्ता है जो पेड़ के किन्हीं दो पत्ती नोड्स के बीच मौजूद होता है। हमें पेड़ के व्यास का प्रतिनिधित्व करने वाले पूर्णांक मान का पता लगाना और वापस करना होगा। तो, अगर इनपुट पसंद है तो

  1. पायथन में एक एन-आरी पेड़ की जड़ खोजने का कार्यक्रम

    मान लीजिए, हमें एक सरणी में n-ary पेड़ के नोड दिए गए हैं। हमें पेड़ के रूट नोड को फिर से ढूंढकर वापस करना है। पूर्ण वृक्ष को पूर्व-आदेश संकेतन में लौटाए गए नोड से प्रदर्शित किया जाना है। तो, अगर इनपुट पसंद है तो आउटपुट होगा [14, 27, 32, 42, 56, 65] हम पेड़ के पूर्व-आदेश ट्रैवर्सल को प्रदर्शित क

  1. पायथन में n-ary पेड़ की प्रतिलिपि बनाने का कार्यक्रम

    मान लीजिए, हमें एक एन-आर्य वृक्ष प्रदान किया गया है जिसकी जड़ हमें जड़ दी गई है। हमें पूर्ण एन-आरी बाइनरी ट्री की एक प्रति बनानी होगी और दोनों पेड़ों का प्रीऑर्डर ट्रैवर्सल करना होगा। कॉपी किए गए पेड़ को दूसरे रूट नोड का उपयोग करके संग्रहीत किया जाना है। पेड़ की नोड संरचना नीचे दी गई है - Node: &nbs