计算树中所有节点总和的 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

回到顶部