কম্পিউটার

গাছটি প্রতিসম বা C# এ পুনরাবৃত্তিমূলক ব্যবহার করছে কিনা তা কীভাবে পরীক্ষা করবেন?


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

উদাহরণ

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 isSymmetricIterative(Node node){
      if (node == null){
         return true;
      }
      Queue<Node> Q1 = new Queue<Node>);
      Queue<Node> Q2 = new Queue<Node>();
      Q1.Enqueue(node.LeftChild);
      Q2.Enqueue(node.RightChild);
      while (Q1.Count > 0 && Q2.Count > 0){
         Node n1 = Q1.Dequeue();
         Node n2 = Q2.Dequeue();
         if ((n1 == null && n2 != null) || n1 != null && n2 == null){
            return false;
         }
         if (n1 != null){
            if (n1.Value != n2.Value){
               return false;
            }
            Q1.Enqueue(n1.LeftChild);
            Q1.Enqueue(n1.RightChild);
            Q1.Enqueue(n1.RightChild);
            Q1.Enqueue(n1.LeftChild);
         }
      }
      return true;
   }
}

আউটপুট

      1
     2 2
   3 4 4 3
True

  1. বাক্যটি প্যানগ্রাম নাকি পাইথন ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. প্রদত্ত গাছটি পাইথনে সিমেট্রিক ট্রি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথন ব্যবহার করে একটি সংখ্যা প্রাইম কিনা তা কীভাবে পরীক্ষা করবেন?

  4. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পাইথন ব্যবহার করছে কিনা তা কীভাবে পরীক্ষা করবেন?