কম্পিউটার

পাইথনের একটি বাইনারি ট্রি থেকে জোড় মান সহ সমস্ত পাতা মুছে ফেলার প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি গাছ আছে, আমরা বারবার এমন সব পাতা মুছে ফেলব যেগুলোর সমান মান আছে। সমস্ত মুছে ফেলার পরে, যদি এটিতে শুধুমাত্র জোড় মান সহ রুট থাকে তবে সেটিও মুছে যাবে।

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

পাইথনের একটি বাইনারি ট্রি থেকে জোড় মান সহ সমস্ত পাতা মুছে ফেলার প্রোগ্রাম


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

পাইথনের একটি বাইনারি ট্রি থেকে জোড় মান সহ সমস্ত পাতা মুছে ফেলার প্রোগ্রাম


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

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

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

    • রিটার্ন নাল

  • মূলের বাম :=সমাধান (মূলের বাম)

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

  • যদি মূল হয় পাতা এবং মূলের ডেটা জোড় হয়, তাহলে

    • রিটার্ন নাল

  • রিটার্ন রুট

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

উদাহরণ

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

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

class Solution:
   def solve(self, root):
      if not root:
         return None

      root.left = self.solve(root.left)
      root.right = self.solve(root.right)

      if not root.left and not root.right and root.data % 2 == 0:
         return None
      return root

ob = Solution()
root = TreeNode(13)
root.left = TreeNode(12)
root.right = TreeNode(14)
root.right.left = TreeNode(16)
root.right.right = TreeNode(22)
root.right.left.left = TreeNode(4)
root.right.left.right = TreeNode(7)
ob.solve(root)
inorder(root)

ইনপুট

root = TreeNode(13)
root.left = TreeNode(12)
root.right = TreeNode(14)
root.right.left = TreeNode(16)
root.right.right = TreeNode(22)
root.right.left.left = TreeNode(4)
root.right.left.right = TreeNode(7)

আউটপুট

13, 16, 7, 14,

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

  2. পাইথনে পোস্টঅর্ডার এবং ইনঅর্ডার থেকে একটি বাইনারি ট্রি তৈরি করুন

  3. পাইথনে প্রদত্ত পোস্টঅর্ডার থেকে একটি বাইনারি অনুসন্ধান গাছ তৈরি করুন

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