কম্পিউটার

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


ধরুন আমাদের একটি বাইনারি সার্চ ট্রি আছে এবং ভ্যাল নামে আরেকটি ইনপুট আছে, আমাদের পরীক্ষা করতে হবে যে ভ্যালটি গাছে আছে কি না।

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

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

val =7, তাহলে আউটপুট হবে True, যেহেতু 7টি ট্রিতে রয়েছে।

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

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

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

    • রিটার্ন ফলস

  • যদি রুটের ডেটা ভ্যালের মতো হয়, তাহলে

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

  • যদি রুট এর ডেটা

    • রিটার্ন সলভ (রুটের বামে, ভ্যাল)

  • রিটার্ন সলভ (রুটের ডান, ভাল)

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

উদাহরণ

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.data = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root, val):
      if not root:
         return False
      if root.data == val:
         return True
      if root.data > val:
         return self.solve(root.left, val)
      return self.solve(root.right, val)
ob = Solution()
root = TreeNode(5)
root.left = TreeNode(1)
root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) print(ob.solve(root, 7))

ইনপুট

root = TreeNode(5)
root.left = TreeNode(1)
root.right = TreeNode(9)
root.right.left = TreeNode(7)
root.right.right = TreeNode(10)
root.right.left.left = TreeNode(6)
root.right.left.right = TreeNode(8)
7

আউটপুট

True

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

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

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

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