কম্পিউটার

পাইথনে একটি বাইনারি ট্রি উল্টানোর প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি গাছের মূল আছে, আমাদের এটিকে উল্টাতে হবে যাতে এর বাম সাবট্রি এবং ডান সাবট্রি বিনিময় হয় এবং তাদের বাচ্চাদেরও বারবার বিনিময় করা হয়।

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

পাইথনে একটি বাইনারি ট্রি উল্টানোর প্রোগ্রাম

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

পাইথনে একটি বাইনারি ট্রি উল্টানোর প্রোগ্রাম

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

  • একটি পদ্ধতি সংজ্ঞায়িত করুন সমাধান(), এটি নোড গ্রহণ করবে

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

    • ফেরত

  • মূলের বাম :=সমাধান (মূলের ডানদিকে)

  • মূলের অধিকার :=সমাধান (মূলের ডান)

  • রিটার্ন রুট

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

উদাহরণ

class TreeNode:
   def __init__(self, value):
      self.val = value
      self.left = None
      self.right = None

def inorder(root):
   if root:
      inorder(root.left)
      print(root.val, end=', ')
      inorder(root.right)

class Solution:
   def solve(self, root):
   if not root:
      return
   root.left, root.right = self.solve(root.right), self.solve(root.left)
   return root

ob = Solution()
root = TreeNode(5)
root.left = TreeNode(4)
root.right = TreeNode(10)
root.right.left = TreeNode(7)
root.right.right = TreeNode(15)
inv = ob.solve(root)
inorder(inv)

ইনপুট

root = TreeNode(5)
root.left = TreeNode(4)
root.right = TreeNode(10)
root.right.left = TreeNode(7)
root.right.right = TreeNode(15)

আউটপুট

15, 10, 7, 5, 4,

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

  2. পাইথনে বাইনারি ট্রির যেকোন পথের বৃহত্তম যোগফল খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একটি বাইনারি গাছের সর্বাধিক প্রস্থ খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে বাইনারি ট্রি ইনভার্ট করুন