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

C++ में दिए गए परफेक्ट बाइनरी ट्री के सभी नोड्स का योग ज्ञात करें

मान लीजिए कि हमारे पास एक सकारात्मक पूर्णांक L है, जो एक पूर्ण बाइनरी ट्री में स्तरों की संख्या का प्रतिनिधित्व करता है। इस परफेक्ट बाइनरी ट्री में लीफ नोड्स की संख्या 1 से n तक होती है। जहां n लीफ नोड्स की संख्या है। पैरेंट नोड बच्चों का योग है। हमारा काम इस परफेक्ट बाइनरी ट्री के सभी नोड्स के योग को प्रिंट करने के लिए एक प्रोग्राम लिखना है। तो अगर पेड़ नीचे जैसा है -

C++ में दिए गए परफेक्ट बाइनरी ट्री के सभी नोड्स का योग ज्ञात करें

तो कुल योग 30 है।

यदि हम करीब से देखें, तो हमें सभी नोड्स का योग ज्ञात करना होगा। चूंकि लीफ नोड्स 1 से n तक के मान धारण कर रहे हैं, तो हम लीफ नोड्स का योग प्राप्त करने के लिए सूत्र n(n+1)/2 का उपयोग कर सकते हैं। चूंकि यह पूर्ण बाइनरी ट्री है, इसलिए प्रत्येक स्तर का योग समान होगा। तो अंतिम स्तर का योग ज्ञात करें, फिर इसे स्तरों की संख्या से गुणा करें।

उदाहरण

#include<iostream>
#include<cmath>
using namespace std;
int treeSum(int level) {
   int total_leaves = pow(2, level - 1);
   int leaf_sum = 0;
   leaf_sum = (total_leaves * (total_leaves + 1)) / 2;
   int sum = leaf_sum * level;
   return sum;
}
int main() {
   int levels = 4;
   cout << "Sum of all nodes for a perfect binary tree with level " << levels << " is: " << treeSum(levels);
}

आउटपुट

Sum of all nodes for a perfect binary tree with level 4 is: 144

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

    नोड्स वाले बाइनरी ट्री के साथ दिया गया है और कार्य किसी दिए गए बाइनरी ट्री के सभी नोड्स के उत्पाद को खोजना है। बाइनरी ट्री में एक रूट नोड होता है जो एक ट्री के सभी नोड्स का मास्टर नोड होता है। एक नोड में डेटा पार्ट, लेफ्ट पॉइंटर होता है जो आगे लेफ्ट सबडायरेक्टरी और राइट पॉइंटर बनाएगा जो राइट सबडायर

  1. C++ में दिए गए बाइनरी ट्री के सभी स्तरों के बीच गैर-पत्ती नोड्स का अधिकतम योग

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो c++ में दिए गए बाइनरी ट्री के सभी स्तरों के बीच गैर-पत्ती नोड्स की अधिकतम राशि पायेगा। समस्या का विवरण - हम पेड़ के सभी गैर-पत्ती नोड्स और प्रत्येक स्तर के योग की गणना करेंगे और फिर अधिकतम योग प्रिंट करेंगे। समस

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

    इस समस्या में, हमें एक बाइनरी ट्री और ट्री में दो लेवल (ऊपरी और निचले) दिए जाते हैं और हमें ट्री के ऊपरी और निचले स्तरों के बीच सभी नोड्स को प्रिंट करना होता है। बाइनरी ट्री एक विशेष पेड़ है जिसके प्रत्येक नोड में अधिकतम दो नोड (एक/दो/कोई नहीं) होते हैं। आइए समस्या को समझने के लिए एक उदाहरण लेते ह