计算树中所有节点总和的 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 <data> at root')
print('add <data> below <data>')
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 <data> at root
add <data> below <data>
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”的方法,它有助于获取树的所有元素/节点的总和。
它是一个递归函数。
给出了四个选项,例如“在根目录添加”、“在下面添加”、“求和”和“退出”。
根据用户给出的选项,执行相应的操作。
此输出显示在控制台上。
以上是 计算树中所有节点总和的 Python 程序 的全部内容, 来源链接: utcz.com/z/335577.html