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

সি++-এ বাইনারি ট্রির লিফ নোডগুলোর গুণফল বের করার প্রোগ্রাম


একটি বাইনারি ট্রি দেওয়া আছে। শুধু লিফ নোডগুলো (যাদের বাম ও ডান চাইল্ড নেই) এর ডেটার গুণফল বের করতে হবে।

ইনপুট (ট্রি চিত্রে)

আউটপুট

Leaf nodes: 23, 34, 25 Product = 19550

পদ্ধতি

  • ট্রি তৈরি করুন।
  • রিকারসিভলি ট্রাভার্স করুন।
  • যখন `!root->left && !root->right` (লিফ নোড), তখন `product *= root->data`।
  • ফলাফল প্রিন্ট করুন।

এলগরিদম

Start
Step 1 → নোড স্ট্রাকচার: data, left, right
Step 2 → new_node(int data): নোড তৈরি
Step 3 → void leaf(node* root, int &product)
    if !root return
    if !root->left && !root->right
        product *= root->data
    leaf(root->left, product)
    leaf(root->right, product)
Step 4 → main(): ট্রি তৈরি, product=1, leaf() কল, প্রিন্ট
Stop

উদাহরণ কোড

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

struct node{
    int data;
    node *left, *right;
};

node* new_node(int data){
    node* temp = new node();
    temp->data = data;
    temp->left = temp->right = NULL;
    return temp;
}

void leaf(node* root, int &product){
    if (!root) return;
    if (!root->left && !root->right)
        product *= root->data;
    leaf(root->left, product);
    leaf(root->right, product);
}

int main(){
    node* root = new_node(10);
    root->left = new_node(20);
    root->left->left = new_node(30);
    root->left->right = new_node(40);
    root->right = new_node(50);
    root->right->right = new_node(60);
    root->right->left = new_node(70);
    int product = 1;
    leaf(root, product);
    cout << "Product of leaf nodes: " << product;
    return 0;
}

আউটপুট

Product of leaf nodes: 5040000

  1. C++-এ বাইনারি ট্রিতে K লিফ বিশিষ্ট সব নোড প্রিন্ট করা

  2. C++-এ বাইনারি সার্চ ট্রির সব বিজোড় নোড প্রিন্ট করা

  3. C++-এ পারফেক্ট বাইনারি ট্রি (Perfect Binary Tree) সকল নোডের যোগফল নির্ণয়

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