जब ट्री के सभी नोड्स का योग खोजना हो, तो एक क्लास बनाई जाती है जिसमें रूट नोड सेट करने, ट्री में एलिमेंट्स जोड़ने, विशिष्ट एलिमेंट खोजने और ट्री के एलिमेंट्स को जोड़कर योग खोजने आदि के लिए मेथड्स होते हैं। क्लास का एक इंस्टेंस बनाकर इन मेथड्स को एक्सेस और उपयोग किया जा सकता है।
उदाहरण
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 sum_node(self):
my_summation = self.key
for child in self.children:
my_summation = my_summation + child.sum_node()
return my_summation
my_instance = None
print('मेन्यू (मान लें कोई डुप्लिकेट कीज़ नहीं)')
print('add at root')
print('add below ')
print('sum')
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 == 'sum':
if my_instance is None:
print('ट्री खाली है')
else:
my_summation = my_instance.sum_node()
print('सभी नोड्स का योग है: {}'.format(my_summation))
elif operation == 'quit':
break
आउटपुट
मेन्यू (मान लें कोई डुप्लिकेट कीज़ नहीं) add at root add below sum quit आप कौन सा ऑपरेशन करेंगे? add 5 at root आप कौन सा ऑपरेशन करेंगे? add 7 below 5 आप कौन सा ऑपरेशन करेंगे? add 0 below 7 आप कौन सा ऑपरेशन करेंगे? sum सभी नोड्स का योग है: 12 आप कौन सा ऑपरेशन करेंगे? quit
व्याख्या
आवश्यक एट्रिब्यूट्स के साथ 'Tree_struct' क्लास बनाई जाती है।
इसमें एक 'init' फंक्शन होता है जो एक खाली सूची बनाने के लिए उपयोग किया जाता है।
'set_root' मेथड परिभाषित की जाती है जो बाइनरी ट्री के रूट मान को सेट करने में मदद करती है।
इसमें एक 'add_node' मेथड होती है जो ट्री में एलिमेंट्स जोड़ने में मदद करती है।
'search_elem' नामक एक मेथड परिभाषित की जाती है जो किसी विशिष्ट एलिमेंट को खोजने में मदद करती है।
'sum_node' नामक एक मेथड परिभाषित की जाती है जो ट्री के एलिमेंट्स को जोड़कर योग खोजने में मदद करती है।
एक इंस्टेंस बनाया जाता है और 'None' असाइन किया जाता है।
उपयोगकर्ता इनपुट उस ऑपरेशन के लिए लिया जाता है जिसे करने की आवश्यकता है।
उपयोगकर्ता की पसंद के आधार पर ऑपरेशन किया जाता है।
प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।