Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra xem một giá trị có trong BST hay không trong Python

Giả sử chúng ta có một cây tìm kiếm nhị phân và một đầu vào khác được gọi là val, chúng ta phải kiểm tra xem val có trong cây hay không.

Vì vậy, nếu đầu vào giống như

Chương trình kiểm tra xem một giá trị có trong BST hay không trong Python

val =7, thì đầu ra sẽ là True, vì 7 có trong cây.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau−

  • Định nghĩa một hàm giải quyết (). Điều này sẽ bắt đầu, val

  • nếu root là null thì

    • trả về Sai

  • nếu dữ liệu của root giống với val, thì

    • trả về True

  • nếu dữ liệu của root

    • trả về giải quyết (bên trái của thư mục gốc, val)

  • trả về giải quyết (quyền của thư mục gốc, val)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn−

Ví dụ

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))

Đầu vào

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

Đầu ra

True