কম্পিউটার

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


ধরুন আমাদের দুটি বাইনারি গাছ আছে। আমাদের পরীক্ষা করতে হবে দ্বিতীয় গাছটি প্রথমটির সাবট্রি কি না৷

সুতরাং, যদি ইনপুট মত হয়

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

তাহলে আউটপুট হবে True।

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

  • একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটি রুট, টার্গেট

    গ্রহণ করবে
  • যদি রুট নাল হয় এবং টার্গেটও নাল হয়, তাহলে

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

  • যদি রুট নাল হয় বা লক্ষ্য শূন্য হয়, তাহলে

    • রিটার্ন ফলস

  • যদি মূলের মান লক্ষ্যের মানের সমান হয়, তাহলে

    • সমাধান (রুটের বামে, লক্ষ্যের বামে) এবং সমাধান (মূলের ডানদিকে, লক্ষ্যের ডানদিকে)

  • অন্যথায়,

    • সমাধান (রুটের বামে, লক্ষ্য) বা সমাধান (মূলের ডানদিকে, লক্ষ্য)

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

উদাহরণ

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.val = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root, target):
      if root == None and target == None:
         return True
      if root == None or target == None:
         return False
      if root.val == target.val:
         return self.solve(root.left, target.left) and
self.solve(root.right, target.right)
      else:
         return self.solve(root.left, target) or
self.solve(root.right, target)
ob = Solution()
root1 = TreeNode(6)
root1.left = TreeNode(4)
root1.right = TreeNode(10)
root1.left.left = TreeNode(3)
root1.left.right = TreeNode(5)
root2 = TreeNode(4)
root2.left = TreeNode(3)
root2.right = TreeNode(5)
print(ob.solve(root1, root2))

ইনপুট

root1 = TreeNode(6)
root1.left = TreeNode(4)
root1.right = TreeNode(10)
root1.left.left = TreeNode(3)
root1.left.right = TreeNode(5)
root2 = TreeNode(4)
root2.left = TreeNode(3)
root2.right = TreeNode(5)

আউটপুট

True

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

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

  3. প্রদত্ত গ্রাফটি পাইথনে দ্বিপক্ষীয় কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

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