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

C++ में स्ट्रिंग के रूप में दर्शाए गए ट्री में k-वें स्तर पर नोड्स का गुणनफल

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

बाइनरी ट्री का स्तर 0 से शुरू होता है और यह 'n' तक जा सकता है जो कि कोई भी धनात्मक संख्या हो सकती है। इसलिए, हमें 'k' स्तर दिया गया है और प्रोग्राम को दिए गए 'k' स्तर पर नोड्स के उत्पाद की गणना करनी चाहिए।

बाइनरी ट्री में, यदि मान लें कि हमें k=2 का मान दिया गया है

तो स्तर 2 पर नोड्स हैं - 40, 50, 60

उत्पाद=40*50*60 =1,20,000

C++ में स्ट्रिंग के रूप में दर्शाए गए ट्री में k-वें स्तर पर नोड्स का गुणनफल

इनपुट

(1(2(3()())(4()(5()())))(6(7()())(8()())))
K = 1

आउटपुट

product of nodes at level k = 12

इनपुट

(0(5(6()())(4()(9()())))(7(1()())(3()())))"
k = 2

आउटपुट

product of nodes at level k = 72

एल्गोरिदम

Start
Step 1→ Declare function to calculate nodes at k-th level
   int product(string tree, int k)
      Declare int level = -1
      Declare int product = 1
      Declare int size = tree.length()
      Loop For int i = 0 and i < size and i++
         IF tree[i] = '('
            Set level++
         End
         Else IF tree[i] = ')'
            Set level—
         End
         Else
            IF level = k
               Set product *= (tree[i] - '0')
            End
         End
      End
      return product
Step 2→ In main()
   Declare string tree = "(1(2(3()())(4()(5()())))(6(7()())(8()())))"
   Declare int k = 1
   Call product(tree, k)
Stop

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//finding product at kth level
int product(string tree, int k){
   int level = -1;
   int product = 1;
   int size = tree.length();
   for (int i = 0; i < size; i++){
      if (tree[i] == '(')
         level++;
      else if (tree[i] == ')')
         level--;
      else{
         if (level == k)
            product *= (tree[i] - '0');
      }
   }
   return product;
}
int main(){
   string tree = "(1(2(3()())(4()(5()())))(6(7()())(8()())))";
   int k = 1;
   cout <<"product of nodes at level k = "<<product(tree, k);
   return 0;
}

आउटपुट

यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -

product of nodes at level k = 12

  1. C++ में पूर्ण ट्री नोड्स की गणना करें

    मान लीजिए कि हमारे पास एक पूर्ण बाइनरी ट्री है, हमें नोड्स की संख्या गिननी है। तो अगर पेड़ जैसा है - तो आउटपुट 6 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे यह पुनरावर्ती दृष्टिकोण का उपयोग करेगा। यह विधि, countNodes() जड़ को तर्क के रूप में ले रही है। घंटा:=0 और एचएल:=0 रूट के रूप में

  1. C++ में बाइनरी ट्री में अधिकतम स्तर का उत्पाद खोजें

    मान लीजिए, एक बाइनरी ट्री दिया गया है। इसमें सकारात्मक और नकारात्मक नोड्स हैं। हमें इसके प्रत्येक स्तर पर अधिकतम उत्पाद खोजना होगा। मान लीजिए कि यह पेड़ है, तो स्तर 0 का गुणनफल 4 है, स्तर 1 का गुणनफल 2 * -5 =-10 है, और स्तर 2 का गुणनफल -1 * 3 * -2 * 6 =36 है। तो यह है अधिकतम एक। इसे हल करने के ल

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

    बाइनरी ट्री को देखते हुए, कार्य 1 से n तक के नोड में संग्रहीत प्रत्येक कुंजी से जुड़े स्तर को प्रिंट करना है उपरोक्त पेड़ में, नोड्स हैं - 10 लेवल 13 पर और 211 लेवल 2140 पर, 162, 100 और 146 लेवल 3 पर कुंजी को देखते हुए प्रोग्राम को उस विशेष कुंजी के स्तर को प्रिंट करना होगा। उदाहरण एल्गोरिदम न