কম্পিউটার

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


ধরুন আমাদের কাছে একটি বাইনারি ট্রির ইনঅর্ডার এবং প্রি-অর্ডার ট্রাভার্সাল সিকোয়েন্স আছে। আমাদের এই ক্রম থেকে গাছ তৈরি করতে হবে। সুতরাং যদি প্রি-অর্ডার এবং ইনঅর্ডার ক্রমগুলি [3,9,20,15,7] এবং [9,3,15,20,7] হয়, তাহলে গাছটি হবে −

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

আসুন ধাপগুলো দেখি -

  • ধরুন পদ্ধতিটিকে প্রি-অর্ডার এবং ইনঅর্ডার তালিকা সহ বিল্ডট্রি বলা হয়
  • root :=প্রি-অর্ডার থেকে প্রথম নোড, এবং প্রি-অর্ডার থেকে প্রথম নোড মুছে দিন
  • root_index :=ক্রম তালিকা থেকে root.val এর সূচক
  • বাম বা রুট :=বিল্ড ট্রি (প্রি-অর্ডার, ০ থেকে রুট_ইনডেক্স পর্যন্ত ইনঅর্ডারের উপসেট)
  • ডান বা রুট :=buildTree(প্রি-অর্ডার, রুট_ইনডেক্স + 1 থেকে শেষ পর্যন্ত ইনঅর্ডারের উপসেট)

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

উদাহরণ

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.data = data
      self.left = left
      self.right = right
def print_tree(root):
   #print using inorder traversal
   if root is not None:
      print_tree(root.left)
      print(root.data, end = ',')
      print_tree(root.right)
class Solution(object):
   def buildTree(self, preorder, inorder):
      if inorder:
         root = TreeNode(preorder.pop(0))
         root_index = inorder.index(root.data)
         root.left = self.buildTree(preorder,inorder[:root_index])
         root.right = self.buildTree(preorder,inorder[root_index+1:])
         return root
ob1 = Solution()
print_tree(ob1.buildTree([3,9,20,15,7], [9,3,15,20,7]))

ইনপুট

[3,9,20,15,7]
[9,3,15,20,7]

আউটপুট

9, 3, 15, 20, 7,

  1. পাইথনে প্রিঅর্ডার ট্রাভার্সাল থেকে বাইনারি সার্চ ট্রি তৈরি করুন

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

  3. Python-এ Binary Tree Inorder Traversal

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