जब पोस्ट ऑर्डर ट्रैवर्सल का उपयोग करके गहराई से पहली खोज को लागू करने की आवश्यकता होती है, तो तत्व जोड़ने, एक विशिष्ट तत्व की खोज करने और पोस्ट ऑर्डर ट्रैवर्सल आदि करने के तरीकों के साथ एक ट्री क्लास बनाया जाता है। वर्ग का एक उदाहरण बनाया जाता है, और इसका उपयोग विधियों तक पहुँचने के लिए किया जा सकता है।
नीचे उसी का प्रदर्शन है -
उदाहरण
class Tree_Struct:
def __init__(self, key=None):
self.key = key
self.children = []
def add_elem(self, node):
self.children.append(node)
def search_elem(self, key):
if self.key == key:
return self
for child in self.children:
temp = child.search_elem(key)
if temp is not None:
return temp
return None
def postorder_traversal(self):
for child in self.children:
child.postorder_traversal()
print(self.key, end=' ')
my_instance = None
print('Menu (this assumes no duplicate keys)')
print('add <data> at root')
print('add <data> below <data>')
print('dfs')
print('quit')
while True:
my_input = input('What operation would you do ? ').split()
operation = my_input[0].strip().lower()
if operation == 'add':
data = int(my_input[1])
new_node = Tree_Struct(data)
suboperation = my_input[2].strip().lower()
if suboperation == 'at':
my_instance = new_node
else:
position = my_input[3].strip().lower()
key = int(position)
ref_node = None
if my_instance is not None:
ref_node = my_instance.search_elem(key)
if ref_node is None:
print('No such key exists')
continue
ref_node.add_elem(new_node)
elif operation == 'dfs':
print('The post-order traversal is : ', end='')
my_instance.postorder_traversal()
print()
elif operation == 'quit':
break आउटपुट
Menu (this assumes no duplicate keys) add <data> at root add <data> below <data> dfs quit What operation would you do ? add 5 at root What operation would you do ? insert 9 below 5 What operation would you do ? insert 2 below 9 What operation would you do ? dfs The post-order traversal is : 5 What operation would you do ? quit
स्पष्टीकरण
-
आवश्यक विशेषताओं वाला 'Tree_struct' वर्ग बनाया गया है।
-
इसमें एक 'init' फ़ंक्शन होता है जिसका उपयोग एक खाली सूची बनाने के लिए किया जाता है।
-
इसमें एक 'add_elem' विधि है जो पेड़ में तत्वों को जोड़ने में मदद करती है।
-
'पोस्टऑर्डर_ट्रैवर्सल' नाम की एक अन्य विधि जो पोस्टऑर्डर ट्रैवर्सल करती है।
-
'Search_elem' नाम की एक विधि परिभाषित की गई है, जो एक विशिष्ट तत्व की खोज में मदद करती है।
-
एक उदाहरण बनाया जाता है और 'कोई नहीं' को असाइन किया जाता है।
-
उपयोगकर्ता इनपुट उस ऑपरेशन के लिए लिया जाता है जिसे निष्पादित करने की आवश्यकता होती है।
-
उपयोगकर्ता की पसंद के आधार पर, ऑपरेशन किया जाता है।
-
प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।