কম্পিউটার

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


বাইনারি ট্রি দেওয়া হয়েছে, কাজটি হল 1 থেকে n

থেকে শুরু করে একটি নোডে সংরক্ষিত প্রতিটি কী-এর সাথে সংশ্লিষ্ট স্তরটি প্রিন্ট করা।

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

উপরের গাছে, নোডগুলি হল −

13 লেভেলে 10 এবং 2140 লেভেলে 211, লেভেল 3 এ 162, 100 এবং 146

কী দেওয়া হলে প্রোগ্রামটিকে অবশ্যই সেই নির্দিষ্ট কীটির স্তর প্রিন্ট করতে হবে।

উদাহরণ

ইনপুট:10 3 211 140 162 100 146 আউটপুট:10-এর স্তর হল 3-এর 1 স্তর হল 211-এর 2 স্তর হল 140-এর 2 স্তর হল 162-এর 3 স্তর হল 162-এর 3 স্তর হল 100-এর 3 স্তর হল 13-এর স্তর পূর্বে> 

অ্যালগরিদম

STARTধাপ 1 -> একটি নোডের একটি কাঠামো তৈরি করুন struct node struct node *left, *right int data EndStep 2 -> একটি নোড নোড তৈরি করতে ফাংশন* newnode(int data) node *temp =new node temp-> data =data temp->left =temp->right=NULL return tempstep 3 -> একটি নোড void লেভেলের লেভেল খোঁজার জন্য ফাংশন তৈরি করুন (Node* root) IF root=NULL Return End STL সারি তৈরি করুন>que que.push({root, 1}) STL পেয়ার তৈরি করুন par লুপ যখন !que.empty() par =que.front() que.pop() প্রিন্ট par.first->ডেটা এবং par.second IF par.first->left que.push({ par.first->left, par.second + 1 }) END IF par.first->right que.push({ par.first-> ডান, par.second + 1 }) End EndSTOP

উদাহরণ

#include Namespace std;//Nodestruct Node এর স্ট্রাকচার ব্যবহার করে{int data; struct Node *left, *right;};//এটি একটি ট্রিভয়েড লেভেলের লেভেল প্রিন্ট করবে (নোড* রুট){ যদি (root==NULL) রিটার্ন করে; queue>que; que.push({root, 1}); pair par; যখন (!que.empty()) { par =que.front(); que.pop(); cout <<"" <data <<" এর স্তর হল " <left) que.push({ par.first->left, par.second + 1 }); যদি (par.first->right) que.push({ par.first->right, par.second + 1 }); }}//নোড তৈরি করতে ফাংশন এবং তাই ট্রিনোড* নিউনোড(int ডেটা){ নোড* টেম্প =নতুন নোড তৈরি করে; temp->ডেটা =ডেটা; temp->left =temp->right =NULL; রিটার্ন temp;}int main(){ Node* root =NULL; //এটি একটি নোড রুট তৈরি করবে =newnode(34); root->left =newnode(12); root->right =newnode(50); root->left->left =newnode(11); root->left->right =newnode(54); স্তর (মূল); রিটার্ন 0;

আউটপুট

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

34-এর স্তর হল 12-এর 1স্তর হল 50-এর 2স্তর হল 11-এর 2স্তর হল 54-এর 3স্তর হল 3

  1. C++ এ সাজানো ক্রমে বাইনারি ট্রি লেভেল প্রিন্ট করুন

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

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

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