जब ट्री में सभी नोड्स का योग प्राप्त करने की आवश्यकता होती है, तो एक 'Tree_structure' क्लास बनाई जाती है, रूट मान सेट करने और अन्य मान जोड़ने के तरीके परिभाषित किए जाते हैं। इसमें ट्री संरचना के सभी तत्वों का योग निर्धारित करने की एक विधि भी होती है। विभिन्न विकल्प दिए जाते हैं जिन्हें उपयोगकर्ता चुन सकता है। उपयोगकर्ता की पसंद के आधार पर, ट्री तत्वों पर ऑपरेशन किया जाता है।
उदाहरण
class Tree_structure:
def __init__(self, data=None):
self.key = data
self.children = []
def set_root(self, data):
self.key = data
def add_values(self, node):
self.children.append(node)
def search_val(self, key):
if self.key == key:
return self
for child in self.children:
temp = child.search_val(key)
if temp is not None:
return temp
return None
def summation_nodes(self):
sum_val = self.key
for child in self.children:
sum_val = sum_val + child.summation_nodes()
return sum_val
tree = None
print('मेनू (डुप्लिकेट कुंजी की अनुमति नहीं)')
print('add at root')
print('add below ')
print('summation')
print('quit')
while True:
my_input = input('आप क्या करना चाहेंगे? ').split()
operation = my_input[0].strip().lower()
if operation == 'add':
data = int(my_input[1])
newNode = Tree_structure(data)
sub_op = my_input[2].strip().lower()
if sub_op == 'at':
tree = newNode
elif sub_op == 'below':
my_pos = my_input[3].strip().lower()
key = int(my_pos)
ref_node = None
if tree is not None:
ref_node = tree.search_val(key)
if ref_node is None:
print('ऐसी कोई कुंजी मौजूद नहीं है')
continue
ref_node.add_values(newNode)
elif operation == 'summation':
if tree is None:
print('ट्री खाली है')
else:
summation_val = tree.summation_nodes()
print('सभी नोड्स का योग है: {}'.format(summation_val))
elif operation == 'quit':
break
आउटपुट
मेनू (डुप्लिकेट कुंजी की अनुमति नहीं) add at root add below summation quit आप क्या करना चाहेंगे? add 56 at root आप क्या करना चाहेंगे? add 45 below 56 आप क्या करना चाहेंगे? add 23 below 56 आप क्या करना चाहेंगे? summation सभी नोड्स का योग है: 124 आप क्या करना चाहेंगे?
व्याख्या
'Tree_structure' क्लास बनाई गई है।
यह 'key' को True सेट करता है और ट्री के बच्चों के लिए एक खाली सूची सेट करता है।
इसमें एक 'set_root' फ़ंक्शन है जो ट्री के लिए रूट मान सेट करने में मदद करता है।
'add_vals' नामक एक विधि परिभाषित की गई है, जो ट्री में एक तत्व जोड़ने में मदद करती है।
'search_val' नामक एक अन्य विधि परिभाषित की गई है, जो ट्री में एक तत्व खोजने में मदद करती है।
'summation_nodes' नामक एक अन्य विधि परिभाषित की गई है, जो ट्री के सभी तत्वों/नोड्स का योग प्राप्त करने में मदद करती है।
यह एक पुनरावर्ती फ़ंक्शन है।
चार विकल्प दिए गए हैं, जैसे 'add at root', 'add below', 'Summation' और 'quit'।
उपयोगकर्ता द्वारा दिए गए विकल्प के आधार पर, संबंधित ऑपरेशन किया जाता है।
यह आउटपुट कंसोल पर प्रदर्शित होता है।