Khi được yêu cầu lấy tổng của tất cả các nút trong Cây, một lớp ‘Cấu trúc cây’ sẽ được tạo, các phương thức để đặt giá trị gốc và thêm các giá trị khác được xác định. Nó cũng có một phương pháp để xác định tổng tất cả các phần tử của cấu trúc Cây. Các tùy chọn khác nhau được đưa ra mà người dùng có thể chọn. Dựa trên lựa chọn của người dùng, hoạt động được thực hiện trên các phần tử Cây.
Dưới đây là một minh chứng về điều tương tự -
Ví dụ
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(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 Đầu ra
MenuMenu (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?
Giải thích
-
Lớp 'Tree_ Structure' được tạo.
-
Nó đặt 'key' thành True và đặt một danh sách trống thành con của cây.
-
Nó có chức năng ‘set_root’ giúp đặt giá trị gốc cho Cây.
-
Một phương thức có tên là ‘add_vals’ được xác định, giúp thêm một phần tử vào Cây.
-
Một phương thức khác có tên là ‘search_val’ được xác định, giúp tìm kiếm một phần tử trong Cây.
-
Một phương thức khác có tên là ‘summation_nodes’ được định nghĩa, giúp lấy tổng của tất cả các phần tử / nút của Cây.
-
Đây là một hàm đệ quy.
-
Bốn tùy chọn được đưa ra, chẳng hạn như "thêm tại gốc", "thêm bên dưới", "Tóm tắt" và "thoát".
-
Tùy thuộc vào tùy chọn do người dùng cung cấp, hoạt động tương ứng được thực hiện.
-
Đầu ra này được hiển thị trên bảng điều khiển.