কম্পিউটার টিউটোরিয়াল

সি++-এ স্ট্রিং আকারে বাইনারি ট্রিতে k-তম লেভেলের নোডগুলোর গুণফল


বাইনারি ট্রি স্ট্রিং ফরম্যাটে দেওয়া আছে (যেমন: `(1(2(3()())(4()(5()())))(6(7()())(8()())))`)। কাজ হলো k-তম লেভেলের নোডগুলোর গুণফল বের করা। লেভেল ০ থেকে শুরু হয়।

ইনপুট

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

আউটপুট

product of nodes at level k = 12

ইনপুট

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

আউটপুট

product of nodes at level k = 72

এলগরিদম

Start
Step 1 → int product(string tree, int k)
    int level = -1, product = 1, size = tree.length()
    for i = 0 to size-1
        if tree[i] == '(' → level++
        else if tree[i] == ')' → level--
        else if level == k
            product *= (tree[i] - '0')
    return product
Step 2 → main(): স্ট্রিং ও k ঘোষণা, product() কল
Stop

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

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 at level k = " << product(tree, k);
    return 0;
}

আউটপুট

product of nodes at level k = 12

  1. N-ary ট্রি লেভেল অর্ডার ট্রাভার্সাল C++-এ

  2. C++-এ সম্পূর্ণ বাইনারি ট্রির নোড গণনা (Count Complete Tree Nodes)

  3. বাইনারি ট্রিতে সর্বোচ্চ লেভেল প্রোডাক্ট (C++)

  4. C++ প্রোগ্রামিং-এ বাইনারি ট্রির সব নোডের লেভেল প্রিন্ট করা