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++ में बाइनरी ट्री के सभी नोड्स का गुणनफल C++ में बाइनरी ट्री के सभी नोड्स का गुणनफल

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

  1. C++ में दिए गए बाइनरी ट्री के सभी स्तरों पर गैर-पत्ती नोड्स का अधिकतम योग (Maximum sum of non-leaf nodes among all levels) C++ में दिए गए बाइनरी ट्री के सभी स्तरों पर गैर-पत्ती नोड्स का अधिकतम योग (Maximum sum of non-leaf nodes among all levels)

    इस समस्या में, हमें एक बाइनरी ट्री दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में दिए गए बाइनरी ट्री के सभी स्तरों पर गैर-पत्ती नोड्स (non-leaf nodes) का अधिकतम योग ढूंढे। समस्या विवरण - हम ट्री के हर स्तर पर सभी गैर-पत्ती नोड्स का योग निकालेंगे और फिर अधिकतम योग प्रिंट करेंगे। आइए एक उद

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

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