কম্পিউটার

C++ এ অ্যারে বাস্তবায়ন সহ বাইনারি ট্রি


একটি বাইনারি গাছ হল একটি বিশেষ ধরনের গাছ যেখানে গাছের প্রতিটি নোডে সর্বাধিক দুটি চাইল্ড নোড থাকতে পারে। এই শিশু নোডগুলি ডান শিশু এবং বাম শিশু হিসাবে পরিচিত৷

একটি সাধারণ বাইনারি গাছ হল −

C++ এ অ্যারে বাস্তবায়ন সহ বাইনারি ট্রি

গাছের প্রতিনিধিত্ব করার জন্য, দুটি উপায় আছে,

  • ডাইনামিক নোড উপস্থাপনা যা লিঙ্ক করা তালিকা ব্যবহার করে
  • অনুক্রমিক উপস্থাপনা যা অ্যারে ব্যবহার করে।

এখানে, আমরা বাইনারি গাছের অ্যারে উপস্থাপনা সম্পর্কে আলোচনা করব। এর জন্য আমাদের BT এর নোডগুলিকে নম্বর দিতে হবে। এই সংখ্যাকরণ 0 থেকে (n-1) বা 1 থেকে n পর্যন্ত শুরু হতে পারে।

অ্যারেতে নোডের অবস্থান এবং তাদের পিতামাতা এবং চাইল্ড নোডগুলি বের করা যাক৷

যখন আমরা 0 সূচক ভিত্তিক সিকোয়েন্সিং, ব্যবহার করি

ধরুন প্যারেন্ট নোড হল একটি ইনডেক্স p.

তারপর, বাম_চাইল্ড নোডটি ইনডেক্সে (2*p)+ 1।

ডান_চাইল্ড নোডটি ইনডেক্সে (2*p) + 2।

রুট নোড ইনডেক্স 0 এ রয়েছে।

left_child সূচক 1 এ আছে।

Right_child সূচক 2 এ রয়েছে।

যখন আমরা 1 সূচক ভিত্তিক সিকোয়েন্সিং, ব্যবহার করি

ধরুন প্যারেন্ট নোড index p, এ আছে

Right_node index (2*p) এ আছে

Left_node index (2*p)+1 এ আছে .

রুট নোড ইনডেক্স 1 এ রয়েছে।

left_child সূচক 2 এ আছে।

Right_child সূচক 3 এ আছে।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
char tree[10];
int rootnode(char key){
   if(tree[0] != '\0')
      cout<<"Tree already had root";
   else
      tree[0] = key;
   return 0;
}
int leftchild(char key, int parent){
   if(tree[parent] == '\0')
      cout <<"\nCan't set child at"<<(parent * 2) + 1<<" , no parent found";
   else
      tree[(parent * 2) + 1] = key;
   return 0;
}
int rightchild(char key, int parent){
   if(tree[parent] == '\0')
      cout<<"\nCan't set child at"<<(parent * 2) + 2<<" , no parent found";
   else
      tree[(parent * 2) + 2] = key;
   return 0;
}
int traversetree(){
   cout << "\n";
   for(int i = 0; i < 10; i++){
      if(tree[i] != '\0')
         cout<<tree[i];
      else
         cout<<"-";
   }
   return 0;
}
int main(){
   rootnode('A');
   rightchild('C', 2);
   leftchild('D', 0);
   rightchild('E', 1);
   rightchild('F', 2);
   traversetree();
   return 0;
}

আউটপুট

Can't set child at6 , no parent found
Can't set child at6 , no parent found
AD--E-----

  1. C++ এ বাইনারি সার্চ ট্রি পুনরুদ্ধার করুন

  2. C++ এ বাইনারি ট্রি প্রিন্ট করুন

  3. C++ এ বাইনারি ট্রি প্রুনিং

  4. C++ এ অ্যারে বাস্তবায়ন সহ বাইনারি ট্রি