Khi cần kiểm tra xem hai danh sách liên kết có giống nhau hay không, phương thức thêm phần tử vào danh sách liên kết và phương thức kiểm tra sự bằng nhau của các phần tử trong các danh sách liên kết được định nghĩa.
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 check_equality(list_1, list_2):
curr_1 = list_1.head
curr_2 = list_2.head
while (curr_1 and curr_2):
if curr_1.data != curr_2.data:
return False
curr_1 = curr_1.next
curr_2 = curr_2.next
if curr_1 is None and curr_2 is None:
return True
else:
return False
my_linked_list_1 = LinkedList_structure()
my_linked_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_linked_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_linked_list_2.add_vals(int(elem))
if check_equality(my_linked_list_1, my_linked_list_2):
print('Hai danh sách liên kết là giống nhau')
else:
print('Hai danh sách liên kết không giống nhau')
Kết quả
Nhập các phần tử của danh sách liên kết đầu tiên: 34 56 89 12 45 Nhập các phần tử của danh sách liên kết thứ hai: 57 23 78 0 2 Hai danh sách liên kết không giống nhau
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àNonevàlast_nodelàNone. - Phương thức
add_valsgiúp thêm giá trị vào danh sách. - Phương thức
check_equalitygiúp kiểm tra xem các phần tử trong hai danh sách liên kết có giống nhau hay không. - Trả về True hoặc False tùy thuộc vào sự bằng nhau.
- Hai instance của
LinkedList_structuređược tạo. - Các phần tử được thêm vào hai danh sách liên kết.
- Phương thức
check_equalityđược gọi trên hai danh sách liên kết này. - Kết quả được hiển thị trên console.