কম্পিউটার

C++ ব্যবহার করে একটি বাইনারি ট্রির দুটি প্রদত্ত স্তরের সংখ্যার মধ্যে নোড প্রিন্ট করার প্রোগ্রাম


এই টিউটোরিয়ালে, আমরা একটি বাইনারি গাছের দুটি স্তরের সংখ্যার মধ্যে নোড প্রিন্ট করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব।

এতে, একটি নির্দিষ্ট বাইনারি গাছের জন্য আমাদের একটি নিম্ন স্তর এবং একটি উচ্চ স্তর দেওয়া হবে এবং আমাদের প্রদত্ত স্তরগুলির মধ্যে সমস্ত উপাদান প্রিন্ট করতে হবে৷

এটি সমাধান করতে আমরা সারি-ভিত্তিক লেভেল ট্রাভার্সাল ব্যবহার করতে পারি। ইনঅর্ডার ট্রাভার্সালের মধ্য দিয়ে যাওয়ার সময় আমাদের প্রতিটি স্তরের শেষে একটি মার্কিং নোড থাকতে পারে। তারপরে আমরা প্রতিটি স্তরে যেতে পারি এবং প্রদত্ত স্তরগুলির মধ্যে মার্কিং নোড বিদ্যমান থাকলে তার নোডগুলি প্রিন্ট করতে পারি৷

উদাহরণ

#include <iostream>
#include <queue>
using namespace std;
struct Node{
   int data;
   struct Node* left, *right;
};
//to print the nodes between the levels
void print_nodes(Node* root, int low, int high){
   queue <Node *> Q;
   //creating the marking node
   Node *marker = new Node;
   int level = 1;
   Q.push(root);
   Q.push(marker);
   while (Q.empty() == false){
      Node *n = Q.front();
      Q.pop();
      //checking for the end of level
      if (n == marker){
      cout << endl;
      level++;
      if (Q.empty() == true || level > high)
      break;
      Q.push(marker);
      continue;
   }
   if (level >= low)
      cout << n->data << " ";
      if (n->left != NULL) Q.push(n->left);
      if (n->right != NULL) Q.push(n->right);
   }
}
Node* create_node(int data){
   Node* temp = new Node;
   temp->data = data;
   temp->left = temp->right = NULL;
   return (temp);
}
int main(){
   struct Node *root= create_node(20);
   root->left= create_node(8);
   root->right= create_node(22);
   root->left->left= create_node(4);
   root->left->right= create_node(12);
   root->left->right->left= create_node(10);
   root->left->right->right= create_node(14);
   cout << "Elements between the given levels are :";
   print_nodes(root, 2, 3);
   return 0;
}

আউটপুট

Elements between the given levels are :
8 22
4 12

  1. C++ এ একটি বাইনারি ট্রির দুটি নোডের মধ্যে দূরত্ব খুঁজুন

  2. C++ ব্যবহার করে একটি গাছের বিজোড় স্তরে নোডগুলি প্রিন্ট করার জন্য প্রোগ্রাম

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

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