যখন ইন-অর্ডার বা পোস্টঅর্ডার ট্রাভার্সাল ব্যবহার করে ইনপুট নেওয়ার মাধ্যমে একটি বাইনারি ট্রি তৈরি করার প্রয়োজন হয়, তখন একটি ক্লাস সংজ্ঞায়িত করা হয়, যেটিতে রুট এলিমেন্ট সেট করার, ইনঅর্ডার ট্রাভার্সাল, পোস্ট অর্ডার ট্রাভার্সাল সঞ্চালনের পদ্ধতি রয়েছে। এটি ক্লাসের একটি উদাহরণ তৈরি করে ব্যবহার করা যেতে পারে।
নীচে একই -
এর একটি প্রদর্শন রয়েছে৷উদাহরণ
class BinaryTree_struct:
def __init__(self, key=None):
self.key = key
self.left = None
self.right = None
def set_root(self, key):
self.key = key
def inorder_traversal(self):
if self.left is not None:
self.left.inorder_traversal()
print(self.key, end=' ')
if self.right is not None:
self.right.inorder_traversal()
def post_order_traversal(self):
if self.left is not None:
self.left.post_order_traversal()
if self.right is not None:
self.right.post_order_traversal()
print(self.key, end=' ')
def construct_btree(post_ord, in_ord):
if post_ord == [] or in_ord == []:
return None
key = post_ord[-1]
node = BinaryTree_struct(key)
index = in_ord.index(key)
node.left = construct_btree(post_ord[:index], in_ord[:index])
node.right = construct_btree(post_ord[index:-1], in_ord[index + 1:])
return node
post_ord = input('The input for post-order traversal is : ').split()
post_ord = [int(x) for x in post_ord]
in_ord = input('The input for in-order traversal is : ').split()
in_ord = [int(x) for x in in_ord]
my_instance = construct_btree(post_ord, in_ord)
print('Binary tree has been constructed...')
print('Verification in process..')
print('Post-order traversal is... ', end='')
my_instance.post_order_traversal()
print()
print('In-order traversal is... ', end='')
my_instance.inorder_traversal()
print() আউটপুট
The input for post-order traversal is : 1 2 3 4 5 The input for in-order traversal is : 5 4 3 2 1 Binary tree has been constructed... Verification in process.. Post-order traversal is... 1 2 3 4 5 In-order traversal is... 5 4 3 2 1
ব্যাখ্যা
-
প্রয়োজনীয় গুণাবলী সহ 'BinaryTree_struct' ক্লাস তৈরি করা হয়েছে।
-
এটির একটি 'init' ফাংশন রয়েছে যা বাম এবং ডান নোডগুলিকে 'কোনও নয়' এ সেট করতে ব্যবহৃত হয়।
-
এটির একটি 'set_root' পদ্ধতি রয়েছে যা বাইনারি গাছের মূল সেট করতে সাহায্য করে।
-
'inorder_traversal' নামে আরেকটি পদ্ধতি যা ইন-অর্ডার ট্রাভার্সাল সম্পাদন করে, যেমন বাম→ নোড→ ডান।
-
'post_order_traversal' নামে আরেকটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা পোস্ট অর্ডারে গাছের মধ্য দিয়ে যেতে সাহায্য করে, যেমন বাম→ ডান→ নোড।
-
'construct_btree' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা পূর্বে নির্দিষ্ট করা উপাদানগুলি ব্যবহার করে একটি বাইনারি ট্রি তৈরি করতে সাহায্য করে।
-
'সার্চ_এলেম' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে, যা একটি নির্দিষ্ট উপাদান অনুসন্ধানে সহায়তা করে।
-
'BinaryTree_struct' ক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে।
-
'construct_btree' পদ্ধতিটি পূর্বে নির্দিষ্ট করা উপাদানগুলি নিয়ে একটি বাইনারি ট্রি তৈরি করতে ব্যবহৃত হয়।
-
পোস্ট অর্ডার ট্রাভার্সাল এবং অর্ডার ট্রাভার্সাল এই গাছে সঞ্চালিত হয়।
-
প্রাসঙ্গিক আউটপুট কনসোলে প্রদর্শিত হয়।