जब ट्री में पत्ती नोड्स की संख्या गिनने की आवश्यकता होती है, तो एक 'Tree_structure' क्लास बनाई जाती है, रूट मान और अन्य बच्चे मान जोड़ने के तरीके परिभाषित किए जाते हैं। विभिन्न विकल्प दिए जाते हैं जिन्हें उपयोगकर्ता चुन सकता है। उपयोगकर्ता की पसंद के आधार पर, ट्री तत्वों पर ऑपरेशन किया जाता है।
उदाहरण
class Tree_structure:
def __init__(self, data=None):
self.key = data
self.children = []
def set_root_node(self, data):
self.key = data
def add_vals(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 count_leaf_node(self):
leaf_nodes = []
self.count_leaf_node_helper_fun(leaf_nodes)
return len(leaf_nodes)
def count_leaf_node_helper_fun(self, leaf_nodes):
if self.children == []:
leaf_nodes.append(self)
else:
for child in self.children:
child.count_leaf_node_helper_fun(leaf_nodes)
tree = None
print('मेनू (यह मानता है कोई डुप्लिकेट कुंजी नहीं)')
print('add at root')
print('add below ')
print('count')
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_vals(newNode)
elif operation == 'count':
if tree is None:
print('ट्री खाली है')
else:
count = tree.count_leaf_node()
print('पत्ती नोड्स की संख्या है: {}'.format(count))
elif operation == 'quit':
break
आउटपुट
मेनू (यह मानता है कोई डुप्लिकेट कुंजी नहीं) add at root add below count quit आप कौन सा ऑपरेशन करना चाहेंगे? add 78 at root आप कौन सा ऑपरेशन करना चाहेंगे? add 90 below 78 आप कौन सा ऑपरेशन करना चाहेंगे? add 8 below 78 आप कौन सा ऑपरेशन करना चाहेंगे? count पत्ती नोड्स की संख्या है: 2 आप कौन सा ऑपरेशन करना चाहेंगे? quit
व्याख्या
'Tree_structure' क्लास बनाई गई है।
यह 'key' को True सेट करता है और ट्री के बच्चों के लिए एक खाली सूची सेट करता है।
इसमें एक 'set_root' फ़ंक्शन है जो ट्री के लिए रूट मान सेट करने में मदद करता है।
'add_vals' नामक एक विधि परिभाषित की गई है, जो ट्री में एक तत्व जोड़ने में मदद करती है।
'search_val' नामक एक अन्य विधि परिभाषित की गई है, जो ट्री में एक तत्व खोजने में मदद करती है।
'count_leaf_nodes' नामक एक अन्य विधि परिभाषित की गई है, जो ट्री के पत्ती नोड्स की संख्या प्राप्त करने में मदद करती है।
'count_leaf_nodes_helper' नामक एक अन्य विधि परिभाषित की गई है, जो पहले से परिभाषित फ़ंक्शन को कॉल करती है - यह एक पुनरावर्ती फ़ंक्शन है।
चार विकल्प दिए गए हैं, जैसे 'add at root', 'add below', 'count' और 'quit'।
उपयोगकर्ता द्वारा दिए गए विकल्प के आधार पर, संबंधित ऑपरेशन किया जाता है।
यह आउटपुट कंसोल पर प्रदर्शित होता है।