जब ब्रेडथ फर्स्ट सर्च ट्रैवर्सल का उपयोग करके ट्री के नोड्स प्रदर्शित करने हों, तो एक क्लास बनाई जाती है जिसमें रूट नोड सेट करने, ट्री में एलिमेंट्स जोड़ने, विशिष्ट एलिमेंट खोजने, 'bfs' (ब्रेडथ फर्स्ट सर्च) करने आदि के लिए मेथड्स होते हैं। क्लास का एक इंस्टेंस बनाकर इन मेथड्स को एक्सेस और उपयोग किया जा सकता है।
उदाहरण
class Tree_struct:
def __init__(self, data=None):
self.key = data
self.children = []
def set_root(self, data):
self.key = data
def add_node(self, node):
self.children.append(node)
def search_node(self, key):
if self.key == key:
return self
for child in self.children:
temp = child.search_node(key)
if temp is not None:
return temp
return None
def bfs_operation(self):
queue = [self]
while queue != []:
popped = queue.pop(0)
for child in popped.children:
queue.append(child)
print(popped.key, end=' ')
my_instance = None
print('मेन्यू (मान लें कोई डुप्लिकेट कीज़ नहीं)')
print('add at root')
print('add below ')
print('bfs')
print('quit')
while True:
my_input = input('आप कौन सा ऑपरेशन करेंगे? ').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
elif suboperation == 'below':
position = my_input[3].strip().lower()
key = int(position)
ref_node = None
if my_instance is not None:
ref_node = my_instance.search_node(key)
if ref_node is None:
print('ऐसी कोई की नहीं')
continue
ref_node.add_node(new_node)
elif operation == 'bfs':
if my_instance is None:
print('ट्री खाली है')
else:
print('ब्रेडथ फर्स्ट सर्च ट्रैवर्सल है:', end='')
my_instance.bfs_operation()
print()
elif operation == 'quit':
break
आउटपुट
मेन्यू (मान लें कोई डुप्लिकेट कीज़ नहीं) add at root add below bfs quit आप कौन सा ऑपरेशन करेंगे? add 6 at root आप कौन सा ऑपरेशन करेंगे? add 4 below 6 आप कौन सा ऑपरेशन करेंगे? add 9 below 4 आप कौन सा ऑपरेशन करेंगे? bfs ब्रेडथ फर्स्ट सर्च ट्रैवर्सल है: 6 4 9 आप कौन सा ऑपरेशन करेंगे? quit
व्याख्या
आवश्यक एट्रिब्यूट्स के साथ 'Tree_struct' क्लास बनाई जाती है।
इसमें एक 'init' फंक्शन होता है जो एक खाली सूची बनाने के लिए उपयोग किया जाता है।
'set_root' मेथड परिभाषित की जाती है जो बाइनरी ट्री के रूट मान को सेट करने में मदद करती है।
इसमें एक 'add_node' मेथड होती है जो ट्री में एलिमेंट्स जोड़ने में मदद करती है।
'search_elem' नामक एक मेथड परिभाषित की जाती है जो किसी विशिष्ट एलिमेंट को खोजने में मदद करती है।
'bfs_operation' नामक एक मेथड परिभाषित की जाती है जो ट्री पर ब्रेडथ फर्स्ट सर्च ट्रैवर्सल करने में मदद करती है।
एक इंस्टेंस बनाया जाता है और 'None' असाइन किया जाता है।
उपयोगकर्ता इनपुट उस ऑपरेशन के लिए लिया जाता है जिसे करने की आवश्यकता है।
उपयोगकर्ता की पसंद के आधार पर ऑपरेशन किया जाता है।
प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।