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

C++ प्रोग्राम में एक ही ट्रैवर्सल में बाइनरी ट्री का घनत्व


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

बाइनरी ट्री का घनत्व ट्री के आकार को ट्री की ऊंचाई से विभाजित करके प्राप्त किया जाता है।

बाइनरी ट्री का आकार दिए गए बाइनरी ट्री में मौजूद नोड्स की कुल संख्या है।

बाइनरी ट्री की ऊंचाई रूट नोड से लीफ नोड की अधिकतम गहराई है।

समस्या को हल करने के चरण देखते हैं।

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

  • ट्री का आकार और ऊंचाई खोजें।

    • ट्री की ऊंचाई को रिकर्सिवली गिनें।

    • यदि लेफ्ट ट्री की ऊंचाई राइट ट्री की ऊंचाई से अधिक है तो लेफ्ट ट्री की ऊंचाई लौटाएं अन्यथा राइट ट्री की ऊंचाई लौटाएं और दोनों में 1 जोड़ें।

    • नोड के आकार को बढ़ाएं।

  • सूत्र $$size\:of\:Tree\:/\:height\:of\:Tree$$ का उपयोग करके ट्री का घनत्व गणना करें।

  • ट्री का घनत्व प्रिंट करें।

उदाहरण

कोड देखते हैं।

#include<bits/stdc++.h> using namespace std; struct Node {    int data;    Node *left, *right; }; Node* newNode(int data) {    Node* node = new Node;    node->data = data;    node->left = node->right = NULL;    return node; } int findHeightAndSizeOfTree(Node* node, int &size) {    if (node == NULL) {       return 0;    }    int leftTreeCount = findHeightAndSizeOfTree(node->left, size);    int rightTreeCount = findHeightAndSizeOfTree(node->right, size);    size++;    return (leftTreeCount > rightTreeCount) ? leftTreeCount + 1 : rightTreeCount + 1; } float treeDensity(Node* root) {    if (root == NULL) {       return 0;    }    int treeSize = 0;    int treeHeight = findHeightAndSizeOfTree(root, treeSize);    return (float)treeSize/treeHeight; } int main() {    Node* root = newNode(1);    root->left = newNode(2);    root->right = newNode(3);    root->left->left = newNode(4);    root->left->right = newNode(5);    root->right->left = newNode(6);    root->right->right = newNode(7);    cout << treeDensity(root) << endl;    return 0; }

आउटपुट

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

2.33333

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में बताएं।


  1. C++ में दिए गए बाइनरी ट्री का पोस्टऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम C++ में दिए गए बाइनरी ट्री का पोस्टऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप है। इसमें ट्री के प्रत्येक नोड को ठीक एक बार चेक या प्रिंट करना शामिल है। बाइनरी सर्च ट्री का पोस्टऑर्डर ट्रैवर्सल ट्री के नोड्स को (लेफ्ट, राइट, रूट) के क्रम में विजिट करता है। बाइनरी ट्री के पोस्टऑर्डर ट्रैवर्सल का एक उदाहरण निम्नलिखित है। एक बाइनरी ट्री नि

  1. C++ में दिए गए बाइनरी ट्री का इनऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम C++ में दिए गए बाइनरी ट्री का इनऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप है। इसमें ट्री के प्रत्येक नोड को ठीक एक बार चेक या प्रिंट करना शामिल है। बाइनरी सर्च ट्री का इनऑर्डर ट्रैवर्सल ट्री के नोड्स को (लेफ्ट, रूट, राइट) के क्रम में विजिट करता है। बाइनरी ट्री के इनऑर्डर ट्रैवर्सल का एक उदाहरण निम्नलिखित है। एक बाइनरी ट्री निम्नलिख

  1. C++ में दिए गए बाइनरी ट्री का प्रीऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम C++ में दिए गए बाइनरी ट्री का प्रीऑर्डर रिकर्सिव ट्रैवर्सल करने का प्रोग्राम

    ट्री ट्रैवर्सल ग्राफ ट्रैवर्सल का एक रूप है। इसमें ट्री के प्रत्येक नोड को ठीक एक बार चेक या प्रिंट करना शामिल है। बाइनरी सर्च ट्री का प्रीऑर्डर ट्रैवर्सल ट्री के नोड्स को (रूट, लेफ्ट, राइट) के क्रम में विजिट करता है। बाइनरी ट्री के प्रीऑर्डर ट्रैवर्सल का एक उदाहरण निम्नलिखित है। एक बाइनरी ट्री निम्