কম্পিউটার

সি# এ পুনরাবৃত্তি ব্যবহার করে একটি বাইনারি ট্রি একটি বৈধ বাইনারি অনুসন্ধান গাছ কিনা তা কীভাবে পরীক্ষা করবেন?


একটি ট্রি হল একটি বাইনারি সার্চ ট্রি যদি এতে নোড এলিমেন্টের চেয়ে বাম দিকের সব শিশু কম থাকে এবং নোড এলিমেন্টের চেয়ে সব ডানের শিশু থাকে। প্রাথমিকভাবে আমরা নোডের কোনো মান আছে কিনা তা পরীক্ষা করে দেখি, যদি নোডটি শূন্য হয় তবে আমরা বৈধ বাইনারি অনুসন্ধান ট্রি হিসাবে বিবেচনা করি এবং সত্য রিটার্ন করি। নোড নাল ফলাফল চেক করার পর, আমরা নোড, ন্যূনতম মান এবং সর্বোচ্চ মান পাস করে পুনরাবৃত্ত পদ্ধতিকে বলি isValidBST। যদি রুট মান মিনিমাম থেকে কম হয় এবং রুট মান ম্যাক্সের থেকে বেশি হয় তাহলে আমরা বাইনারি সার্চ ট্রি হিসেবে বিবেচনা করি না এবং মিথ্যা রিটার্ন করি অন্যথায় আমরা বাম এবং ডান মান পাস করে বারবার isValidBST পদ্ধতি বলি যতক্ষণ না এটি সমস্ত নোড চেক করে

উদাহরণ

public class TreesPgm{
   public class Node{
      public int Value;
      public Node LeftChild;
      public Node RightChild;
      public Node(int value){
         this.Value = value;
      }
      public override String ToString(){
         return "Node=" + Value;
      }
   }
   public bool isValidBST(Node root){
      if (root == null){
         return true;
      }
      return isValidBST(root, int.MinValue, int.MaxValue);
   }
   private bool isValidBST(Node root, int min, int max){
      if (root == null){
         return true;
      }
      if (root.Value <= min || root.Value >= max){
         return false;
      }
      return isValidBST(root.LeftChild, min, root.Value) && isValidBST(root.RightChild,
      root.Value, max);
   }
}

ইনপুট

   5
  2 6
1  3

আউটপুট

True

  1. জাভাস্ক্রিপ্টে বাইনারি সার্চ ট্রি

  2. C++ এ বাইনারি ট্রিতে রুট থেকে পাতার পথ পর্যন্ত স্ট্রিং একটি বৈধ ক্রম কিনা তা পরীক্ষা করুন

  3. C++-এ নিকটতম বাইনারি অনুসন্ধান ট্রি মান II

  4. পাইথনে একটি বাইনারি ট্রি বিএসটি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম