কম্পিউটার

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


বাইনারি ট্রি দেওয়া হলে, প্রোগ্রামটিকে অবশ্যই একটি গাছের বিজোড় স্তরে নোডগুলি প্রিন্ট করতে হবে এবং একটি বাইনারি গাছের স্তরগুলি 1 থেকে n থেকে শুরু হবে৷

যেহেতু কিছুই উল্লেখ করা হয়নি, দুটি পদ্ধতির একটি প্রয়োগ করা যেতে পারে যেমন পুনরাবৃত্তি বা পুনরাবৃত্তি।

যেহেতু আমরা একটি পুনরাবৃত্ত পদ্ধতি ব্যবহার করছি, তাই প্রোগ্রামটি এমন একটি ফাংশনে একটি পুনরাবৃত্ত কল করবে যা বিজোড় স্তরে নোডগুলি নিয়ে আসবে এবং সেগুলি ফিরিয়ে দেবে৷

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

উপরের বাইনারি গাছে -

Nodes at level 1: 10
Nodes at level 2: 3 and 211
Nodes at level 3: 140, 162, 100 and 146

সুতরাং, লেভেল 1 এবং লেভেল 3 এ নোডগুলি প্রিন্ট করা হবে যার মানে আউটপুট হবে 10, 140, 162, 100 এবং 146৷

অ্যালগরিদম

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->data = data
   node->left = node->right = NULL;
   return (node)
step 3 -> create function for finding the odd nodes
   void odd(Node *root, bool ifodd = true)
   IF root = NULL
      Return
   End
   if (ifodd)
      print root->data
   End
   odd(root->left, !ifodd)
   odd(root->right, !ifodd)
step 4 -> In main()
   Create tree using Node* root = newnode(45)
   root->left = newnode(23)
   Call odd(root)
Stop

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
struct Node{
   int data;
   Node* left, *right;
};
void odd(Node *root, bool ifodd = true){
   if (root == NULL)
      return;
   if (ifodd)
      cout << root->data << " " ;
   odd(root->left, !ifodd);
   odd(root->right, !ifodd);
}
// function to create a new node
Node* newnode(int data){
   Node* node = new Node;
   node->data = data;
   node->left = node->right = NULL;
   return (node);
}
int main(){
   Node* root = newnode(45);
   root->left = newnode(23);
   root->right = newnode(13);
   root->left->left = newnode(24);
   root->left->right = newnode(85);
   cout<<"\nodd nodes are ";
   odd(root);
   return 0;
}

আউটপুট

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

odd nodes are 45 24 85

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

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

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

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