কম্পিউটার

পাইথনে বাম এবং ডান সাবট্রি সমষ্টির সাথে মান আপডেট করে একটি ট্রি খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি গাছ আছে, আমাদের একই গাছ খুঁজে বের করতে হবে কিন্তু প্রতিটি নোডের মান তার মান + এর বাম এবং ডান উপবৃক্ষের সমস্ত যোগফল দ্বারা প্রতিস্থাপিত হয়।

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

পাইথনে বাম এবং ডান সাবট্রি সমষ্টির সাথে মান আপডেট করে একটি ট্রি খুঁজে বের করার প্রোগ্রাম


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

পাইথনে বাম এবং ডান সাবট্রি সমষ্টির সাথে মান আপডেট করে একটি ট্রি খুঁজে বের করার প্রোগ্রাম

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

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

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

    • রিটার্ন 0

  • রুটের ডেটা :=ট্রি_সম (মূলের বামে) + ট্রি_সম(মূলের ডানদিকে) + মূলের ডেটা

  • রুটের ডেটা ফেরত দেয়

  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন:

  • tree_sum(মূল)

  • রিটার্ন রুট

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

উদাহরণ

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):
      def tree_sum(root: TreeNode):
         if root is None:
            return 0
         root.data = tree_sum(root.left) + tree_sum(root.right) + root.data
return root.data
tree_sum(root)
return root
ob = Solution()
root = TreeNode(2)
root.left = TreeNode(3)
root.right = TreeNode(4)
root.left.left = TreeNode(9)
root.left.right = TreeNode(7)
ob.solve(root)
inorder(root)

ইনপুট

root = TreeNode(12)
root.left = TreeNode(8)
root.right = TreeNode(15)
root.left.left = TreeNode(3)
root.left.right = TreeNode(10)

আউটপুট

9, 19, 7, 25, 4,

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

  2. পাইথনে একটি বাইনারি গাছে কে-দৈর্ঘ্যের পাথ খুঁজে বের করার জন্য প্রোগ্রাম

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

  4. পাইথনে অভিন্ন বাম এবং ডান সাবট্রি সহ বৃহত্তম সাবট্রি খুঁজুন