কম্পিউটার টিউটোরিয়াল

পাইথনে বাইনারি ট্রি BST কিনা যাচাই করার প্রোগ্রাম


মনে করুন একটি বাইনারি ট্রি আছে। এটি বাইনারি সার্চ ট্রি (BST) কিনা যাচাই করতে হবে। BST-এর বৈশিষ্ট্য:

  • বাম সাবট্রির সব নোড বর্তমান নোড চেয়ে ছোট।
  • ডান সাবট্রির সব নোড বর্তমান নোড চেয়ে বড়।
  • এই বৈশিষ্ট্য রিকার্সিভলি সব নোডের জন্য সত্য।

ইনপুট ট্রির ছবি দেওয়া আছে, আউটপুট True।

সমাধানের ধাপসমূহ

  • x := ট্রির ইনঅর্ডার ট্রাভার্সাল সিকোয়েন্স
  • যদি x সর্টেড হয়, True ফেরত দিন
  • অন্যথায় False ফেরত দিন

উদাহরণ

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):
        def inorder(root,l):
            if root is None:
                return
            inorder(root.left,l)
            l.append(root.data)
            inorder(root.right,l)
        l = []
        inorder(root,l)
        return l == sorted(l)

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

ইনপুট

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)

আউটপুট

True
  1. পাইথনে গ্রাফ বাইপার্টাইট কিনা যাচাই করার প্রোগ্রাম

  2. পাইথনে BST-এ একটি মান আছে কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে দেওয়া বাইনারি ট্রি হিপ কিনা চেক করুন

  4. পাইথনে বাইনারি ট্রি ইনভার্ট (Invert Binary Tree)