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

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


একটি বাইনারি ট্রি দেওয়া আছে। ট্রির সব নোডের ডেটার গুণফল বের করতে হবে।

বাইনারি ট্রিতে রুট নোড থাকে, প্রতিটি নোডের ডেটা, বাম ও ডান পয়েন্টার থাকে। ট্রাভার্সালের সময় রিকারসিভলি বাম ও ডান সাবট্রি ঘুরে গুণফল বের করা যায়।

ইনপুট (ট্রি কাঠামো চিত্রে দেখানো আছে)

আউটপুট

Nodes: 10, 20, 30, 40, 50, 60 Product = 720000000

পদ্ধতি

  • নোড ডেটা ইনপুট/ট্রি তৈরি করুন।
  • রুট থেকে রিকারসিভলি বাম ও ডান সাবট্রি ট্রাভার্স করুন।
  • প্রতিটি নোডের ডেটা গুণ করুন।
  • ফলাফল প্রিন্ট করুন।

এলগরিদম

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

উদাহরণ কোড

#include <iostream> 
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;
}

int node_product(node* root){
    if (root == NULL) return 1;
    return (root->data * node_product(root->left) * node_product(root->right));
}

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

আউটপুট

Product of all the nodes is: 720000000

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

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

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

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