计算树中所有节点总和的 Python 程序
当需要获取树中所有节点的总和时,会创建一个“Tree_structure”类,定义设置根值和添加其他值的方法。它还具有确定Tree结构的所有元素总和的方法。给出了用户可以选择的各种选项。根据用户的选择,对Tree元素进行操作。
以下是相同的演示-
示例
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):
ifself.key== key:
return self
for child in self.children:
temp = child.search(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('Menu (no duplicate keys allowed)')
print('add at root')
print('add below ')
print('summation')
print('quit')
while True:
my_input = input('What would you like to do? ').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('No such key exists')
continue
ref_node.add_values(newNode)
elif operation == 'summation':
if tree is None:
print('The tree is empty')
else:
summation_val = tree.summation_nodes()
print('Sum of all the nodes is : {}'.format(summation_val))
elif operation == 'quit':
break输出结果Menu (no duplicate keys allowed) add at root add below summation quit What would you like to do? add 56 at root What would you like to do? add 45 below 56 What would you like to do? add 23 below 56 What would you like to do? summation Sum of all the nodes is : 124 What would you like to do?
解释
'Tree_structure'类被创建。
它将“键”设置为True并将一个空列表设置为树的子项。
它有一个“set_root”函数,可以帮助设置树的根值。
定义了一个名为“add_vals”的方法,它有助于将元素添加到树中。
定义了另一个名为“search_val”的方法,它有助于搜索树中的元素。
定义了另一个名为“summation_nodes”的方法,它有助于获取树的所有元素/节点的总和。
它是一个递归函数。
给出了四个选项,例如“在根目录添加”、“在下面添加”、“求和”和“退出”。
根据用户给出的选项,执行相应的操作。
此输出显示在控制台上。
热门推荐
10 小托班祝福语简短
11 下午微信祝福语简短
12 便利贴老师祝福语简短
13 男孩中考蛋糕祝福语简短
14 结婚祝福语简短最好的
15 红包祝福语简短10字
16 新春祝福语大全 英语简短
17 新年祝福语2026最简短
18 高考录取庆贺祝福语简短