কম্পিউটার

C++ প্রোগ্রামিং-এ লাইন দ্বারা প্রিন্ট লেভেল অর্ডার ট্রাভার্সাল লাইন।


বাইনারি ট্রি দেওয়া হলে, ফাংশনটিকে অবশ্যই একটি ট্রি রেখার লাইনের লেভেল অর্ডার ট্রাভার্সাল খুঁজে বের করতে হবে।

লেভেল অর্ডার ট্রাভার্সাল:লেফট রুট রাইট, যার মানে প্রথমে একটি রুটের মানের চেয়ে একটি নোডের বাম চাইল্ড প্রিন্ট করুন এবং তারপর ডান চাইল্ডে যান কিন্তু এখানে আমাদের লাইন বাই লাইন করতে হবে যা বাম থেকে শুরু হবে এবং ডানদিকে শেষ হবে। একটি প্রদত্ত বাইনারি গাছের নোড।

C++ প্রোগ্রামিং-এ লাইন দ্বারা প্রিন্ট লেভেল অর্ডার ট্রাভার্সাল লাইন।

উপরে দেওয়া বাইনারি ট্রি নিম্নলিখিত আউটপুট −

তৈরি করবে
Level 0: 3
Level 1: 2 1
Level 2: 10 20 30

অ্যালগরিদম

START
Step 1 -> create a structure of a node as
   struct node
      struct node *left, *right
      int data
   End
Step 2 -> function to create a node
   node* newnode(int data)
   node *temp = new node
   temp->data = data
   temp->left = temp->right= NULL
   return temp
step 3 -> function for inorder traversal
   void levelorder(node *root)
   IF root = NULL
      Return
   End
   queue<node *> que
   que.push(root)
   Loop While que.empty() = false
      int count = que.size()
      Loop While count > 0
         node *node = que.front()
         print node->data
         que.pop()
      IF node->left != NULL
         que.push(node->left)
      End
      IF node->right != NULL
         que.push(node->right)
      End
      Decrement count by 1
   End
End
Step 4 -> In main() function
   Create tree using node *root = newnode(3)
   Call levelorder(root)
STOP

উদাহরণ

#include <iostream>
#include <queue>
using namespace std;
//it will create a node structure
struct node{
   struct node *left;
   int data;
   struct node *right;
};
void levelorder(node *root){
   if (root == NULL)
      return;
   queue<node *> que;
   que.push(root);
   while (que.empty() == false){
      int count = que.size();
      while (count > 0){
         node *node = que.front();
         cout << node->data << " ";
         que.pop();
         if (node->left != NULL)
            que.push(node->left);
         if (node->right != NULL)
            que.push(node->right);
         count--;
      }
   }
}
//it will create a new node
node* newnode(int data){
   node *temp = new node;
   temp->data = data;
   temp->left = NULL;
   temp->right = NULL;
   return temp;
}
int main(){
   // it will generate the binary tree
   node *root = newnode(3);
   root->left = newnode(2);
   root->right = newnode(1);
   root->left->left = newnode(10);
   root->left->right = newnode(20);
   root->right->right = newnode(30);
   levelorder(root);
   return 0;
}

আউটপুট

যদি আমরা উপরের প্রোগ্রামটি চালাই তাহলে এটি নিম্নলিখিত আউটপুট তৈরি করবে

3 2 1 10 20 30

  1. বাইনারি গাছের নোডগুলি প্রিন্ট করুন যেহেতু তারা C++ প্রোগ্রামিং-এ লিফ নোড হয়ে যায়।

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

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

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