Khi cần cộng các phần tử tại vị trí cụ thể trong hai danh sách liên kết, các phương thức thêm phần tử, in phần tử và cộng các phần tử tại vị trí tương ứng của danh sách liên kết được định nghĩa. Hai instance danh sách được tạo và phương thức định nghĩa trước được gọi trên các instance danh sách liên kết này.
Ví dụ
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList_structure:
def __init__(self):
self.head = None
self.last_node = None
def add_vals(self, data):
if self.last_node is None:
self.head = Node(data)
self.last_node = self.head
else:
self.last_node.next = Node(data)
self.last_node = self.last_node.next
def print_it(self):
curr = self.head
while curr is not None:
print(curr.data)
curr = curr.next
def add_linked_list(my_list_1, my_list_2):
sum_list = LinkedList_structure()
curr_1 = my_list_1.head
curr_2 = my_list_2.head
while (curr_1 and curr_2):
sum_val = curr_1.data + curr_2.data
sum_list.add_vals(sum_val)
curr_1 = curr_1.next
curr_2 = curr_2.next
if curr_1 is None:
while curr_2:
sum_list.add_vals(curr_2.data)
curr_2 = curr_2.next
else:
while curr_1:
sum_list.add_vals(curr_1.data)
curr_1 = curr_1.next
return sum_list
my_list_1 = LinkedList_structure()
my_list_2 = LinkedList_structure()
my_list = input('Nhập các phần tử của danh sách liên kết đầu tiên: ').split()
for elem in my_list:
my_list_1.add_vals(int(elem))
my_list = input('Nhập các phần tử của danh sách liên kết thứ hai: ').split()
for elem in my_list:
my_list_2.add_vals(int(elem))
sum_list = add_linked_list(my_list_1, my_list_2)
print('Tổng các phần tử trong danh sách liên kết là: ')
sum_list.print_it()
Kết quả
Nhập các phần tử của danh sách liên kết đầu tiên: 56 34 78 99 54 11 Nhập các phần tử của danh sách liên kết thứ hai: 23 56 99 0 122 344 Tổng các phần tử trong danh sách liên kết là: 79 90 177 99 176 355
Giải thích
- Lớp
Nodeđược tạo. - Lớp
LinkedList_structurevới các thuộc tính cần thiết được tạo. - Phương thức
__init__khởi tạo phần tử đầu tiên (head) làNone. - Phương thức
add_valsgiúp thêm giá trị vào danh sách. - Phương thức
print_itgiúp hiển thị các giá trị của danh sách liên kết. - Phương thức
add_linked_listgiúp cộng các phần tử tương ứng của hai danh sách liên kết. - Hai instance của
LinkedList_structuređược tạo. - Các phần tử được thêm vào cả hai danh sách liên kết.
- Phương thức
add_linked_listđược gọi trên các danh sách liên kết này. - Kết quả được hiển thị trên console.