Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python cộng các phần tử tại vị trí tương ứng của 2 danh sách liên kết

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_structure vớ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_vals giúp thêm giá trị vào danh sách.
  • Phương thức print_it giúp hiển thị các giá trị của danh sách liên kết.
  • Phương thức add_linked_list giú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.