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

সি++ প্রোগ্রাম: কমপ্লিট বাইনারি ট্রি (Complete Binary Tree)-এ রুট থেকে সব নোড পর্যন্ত পাথ প্রিন্ট করা


এই টিউটোরিয়ালে কমপ্লিট বাইনারি ট্রি (Complete Binary Tree)-এ রুট নোড (root node) থেকে বাকি সব নোড পর্যন্ত পাথ প্রিন্ট করার প্রোগ্রাম আলোচনা করা হবে।

এই প্রোগ্রামে একটি সংখ্যা N দেওয়া থাকবে, যা বাইনারি ট্রিতে ১ থেকে N পর্যন্ত উপাদানের সংখ্যা বোঝাবে; ১ হলো রুট নোড। তাই রুট নোড থেকে বিভিন্ন উপাদান পর্যন্ত সব সম্ভাব্য পাথ প্রিন্ট করতে হবে।

সমাধান: নোড i-এর বাম চাইল্ড (left child) = 2*i, ডান চাইল্ড (right child) = 2*i+1। ব্যাকট্র্যাকিং (backtracking) ব্যবহার করে প্রতিটি উপাদানের পাথ একটি ভেক্টরে (vector) সংরক্ষণ করে সব পাথ প্রিন্ট করা।

উদাহরণ

#include <iostream> #include <vector> using namespace std; // রুট নোড থেকে সব সম্ভাব্য পাথ ক্যালকুলেট করা void calc_allpath(vector paths, int nth_node, int kth_node){    if (kth_node > nth_node)       return;    paths.push_back(kth_node);    for (int i = 0; i < paths.size(); i++)       cout << paths[i] << " ";       cout << endl;    calc_allpath(paths, nth_node, kth_node * 2);    calc_allpath(paths, nth_node, kth_node * 2 + 1); } // রুট নোড থেকে সব পাথ প্রিন্ট করা void print_allpath(int nth_node){    vector paths;    calc_allpath(paths, nth_node, 1); } int main(){    int nth_node = 9;    print_allpath(nth_node);    return 0; }

আউটপুট

1 1 2 1 2 4 1 2 4 8 1 2 4 9 1 2 5 1 3 1 3 6 1 3 7

  1. BFS ব্যবহার করে সোর্স থেকে ডেস্টিনেশন পর্যন্ত সব পথ প্রিন্ট করা C++-তে

  2. সোর্স থেকে ডেস্টিনেশন পর্যন্ত সব পথ প্রিন্ট করা C++-তে

  3. সি++ প্রোগ্রাম: বাইনারি ট্রি (Binary Tree)-এর বিজোড় লেভেল (Odd Level)-এ থাকা নোডগুলো প্রিন্ট করা

  4. C++ প্রোগ্রামিং-এ বাইনারি ট্রিতে যেকোনো দুটি নোডের পথ প্রিন্ট করা