কম্পিউটার

C++ এ একটি বাইনারি গাছের বাম দিকের ভিউ খোঁজার জন্য প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি গাছ আছে, যদি আমরা গাছটিকে বাম দিক থেকে দেখি, তাহলে আমরা এর কিছু উপাদান দেখতে পাব। আমাদের সেই উপাদানগুলি প্রদর্শন করতে হবে। তাই গাছটি যদি −

এর মত হয়

C++ এ একটি বাইনারি গাছের বাম দিকের ভিউ খোঁজার জন্য প্রোগ্রাম

আউটপুট হবে [1,2,5]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি অ্যারে ret সংজ্ঞায়িত করুন

  • একটি ফাংশন সংজ্ঞায়িত করুন dfs(), এটি নোড নেবে, c এটি 1 দিয়ে আরম্ভ করুন,

  • যদি নোড নাল হয়, তাহলে −

    • ফেরত

  • যদি c> lvl, তাহলে −

    • lvl :=c

    • ret

      -এ নোডের মান সন্নিবেশ করান
  • dfs(নোডের বাম, c + 1)

  • dfs(নোডের ডানদিকে, c + 1)

  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -

  • lvl :=-1

  • dfs(root, 0)

  • রিটার্ন রিটার্ন


আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<int> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class TreeNode{
   public:
   int val;
   TreeNode *left, *right;
   TreeNode(int data){
      val = data;
      left = right = NULL;
   }
};
class Solution {
   public:
   vector <int> ret;
   int lvl;
   void dfs(TreeNode* node, int c = 1){
      if(!node)
         return;
      if(c > lvl){
         lvl = c;
         ret.push_back(node->val);
      }
      dfs(node->left, c + 1);
      dfs(node->right, c + 1);
   }
   vector<int> solve(TreeNode* root) {
      lvl = -1;
      dfs(root, 0);
      return ret;
   }
};
main(){
   TreeNode *root = new TreeNode(1);
   root->left = new TreeNode(2);
   root->right = new TreeNode(3);
   root->left->right = new TreeNode(5);
   root->right->right = new TreeNode(4);
   Solution ob;
   print_vector(ob.solve(root));
}

ইনপুট

TreeNode *root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->right = new TreeNode(5);
root->right->right = new TreeNode(4);

আউটপুট

[1,2,5]

  1. C++ এ দূষিত বাইনারি ট্রিতে উপাদান খুঁজুন

  2. C++ এ সর্বাধিক বাইনারি ট্রি

  3. C++ এ বাইনারি ট্রি রাইট সাইড ভিউ

  4. C++ এ একটি বাইনারি গাছের নিকটতম পাতাটি খুঁজুন