কম্পিউটার

C++ এ বাইনারি ট্রি-তে সমস্ত ডান নোডের মধ্যে সর্বাধিক খুঁজুন


এই সমস্যায়, আমাদের একটি বাইনারি ট্রি দেওয়া হয়। আমাদের কাজ হল বাইনারি ট্রি-তে সমস্ত ডান নোডের মধ্যে সর্বাধিক খুঁজে পাওয়া।

সমস্যা বর্ণনা: এখানে, আমাদের বাইনারি ট্রির সমস্ত ডান চাইল্ড নোডের মধ্যে সর্বাধিক মান খুঁজে বের করতে হবে।

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

ইনপুট:

C++ এ বাইনারি ট্রি-তে সমস্ত ডান নোডের মধ্যে সর্বাধিক খুঁজুন

আউটপুট:

ব্যাখ্যা:

সমস্ত ডান নোড হল:{2, 8, 9}। তাদের মধ্যে সর্বাধিক 9।

সমাধান পদ্ধতি

সমস্যা সমাধানের জন্য, আমাদের গাছটি অতিক্রম করতে হবে এবং এর সঠিক সন্তান আছে কিনা তা পরীক্ষা করতে হবে। এটি বিদ্যমান থাকলে, maxRight উপাদানের সাথে তুলনা করুন এবং এটি বড় হলে প্রতিস্থাপন করুন৷

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;

struct Node {
   int data;
   struct Node *left, *right;
};

Node* newNode(int data) {
   
   Node* temp = new Node;
   temp->data = data;
   temp->left = temp->right = NULL;
   return temp;
}

int findMaxRightNode(Node* root) {
   
   int maxRight = -100;

   if (root == NULL)
      return -1;

   if (root->right != NULL)
      maxRight = root->right->data;

   return max( findMaxRightNode(root->right), max(maxRight, findMaxRightNode(root->left) ) );
}

int main() {

   Node* root = newNode(5);
   root->left = newNode(3);
   root->right = newNode(2);
   root->left->left = newNode(1);
   root->left->right = newNode(8);
   root->right->left = newNode(6);
   root->right->right = newNode(9);

   cout<<"The maximum among all right nodes in Binary Tree is "<< findMaxRightNode(root);

   return 0;
}

আউটপুট

The maximum among all right nodes in Binary Tree is 9

  1. C++ এ বাইনারি ট্রিতে সর্বোচ্চ স্তরের পণ্য খুঁজুন

  2. C++ এ একটি বাইনারি ট্রির দুটি নোডের মধ্যে দূরত্ব খুঁজুন

  3. C++ এ বাইনারি ট্রিতে সর্বোচ্চ উল্লম্ব যোগফল খুঁজুন

  4. C++ এ প্রদত্ত নিখুঁত বাইনারি গাছের সমস্ত নোডের সমষ্টি খুঁজুন