কম্পিউটার

C++ এ পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে বাইনারি গাছের সমস্ত লিফ নোড বাম থেকে ডানে মুদ্রণ করুন


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

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক

ইনপুট -

C++ এ পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে বাইনারি গাছের সমস্ত লিফ নোড বাম থেকে ডানে মুদ্রণ করুন

আউটপুট − 1 4 7

পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে এই সমস্যাটি সমাধান করতে, আমরা একটি গভীরতা-প্রথম অনুসন্ধান (ডিএফএস) ব্যবহার করব। ট্র্যাভার্স ট্রি করার জন্য, আমরা রুট নোড থেকে শুরু করব এবং এটি একটি লিফ নোড কিনা তা পরীক্ষা করব তারপর নোডটি প্রিন্ট করুন অন্যথায় এর চাইল্ড ট্রিগুলি খুঁজুন এবং সমস্ত লিফ নোডগুলি খুঁজে পেতে চাইল্ড সাবট্রিগুলি অতিক্রম করুন৷

উদাহরণ

নিচের কোডটি আমাদের সমাধান −

বাস্তবায়ন করবে
#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *left, *right;
};
Node* insertNode(int data) {
   Node *temp = new Node;
   temp->data = data;
   temp->left = temp->right = NULL;
   return temp;
}
void printLTRLeafNodes(Node *root){
   if (!root)
      return;
   if (!root->left && !root->right) {
      cout<<root->data<<"\t";
      return;
   }
   if (root->left)
      printLTRLeafNodes(root->left);
   if (root->right)
      printLTRLeafNodes(root->right);
}
int main(){
   Node *root = insertNode(21);
   root->left = insertNode(5);
   root->right = insertNode(36);
   root->left->left = insertNode(2);
   root->right->left = insertNode(13);
   root->right->right = insertNode(4);
   root->right->left->left = insertNode(76);
   root->right->left->right = insertNode(9);
   root->right->right->left = insertNode(17);
   root->right->right->right = insertNode(2);
   cout<<"Leaf Nodes of the tree from left to rigth are :\n";
   printLTRLeafNodes(root);
   return 0;
}

আউটপুট

Leaf Nodes of the tree from left to right are −
2 76 9 17 2

  1. C++ এ একটি লিফ নোড থেকে k দূরত্বে থাকা সমস্ত নোড প্রিন্ট করুন

  2. C++ এ বাইনারি সার্চ ট্রির সমস্ত বিজোড় নোড প্রিন্ট করুন

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

  4. C++ এ একটি স্ট্যাক ব্যবহার করে বাইনারি ট্রিতে বাম থেকে ডানে লিফ নোড প্রিন্ট করুন