বাইনারি ট্রি দেওয়া হলে, ফাংশনটিকে অবশ্যই একটি ট্রি রেখার লাইনের লেভেল অর্ডার ট্রাভার্সাল খুঁজে বের করতে হবে।
লেভেল অর্ডার ট্রাভার্সাল:লেফট রুট রাইট, যার মানে প্রথমে একটি রুটের মানের চেয়ে একটি নোডের বাম চাইল্ড প্রিন্ট করুন এবং তারপর ডান চাইল্ডে যান কিন্তু এখানে আমাদের লাইন বাই লাইন করতে হবে যা বাম থেকে শুরু হবে এবং ডানদিকে শেষ হবে। একটি প্রদত্ত বাইনারি গাছের নোড।
উপরে দেওয়া বাইনারি ট্রি নিম্নলিখিত আউটপুট −
তৈরি করবে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