Khi cần tìm phần tử chung xuất hiện lần đầu tiên giữa hai danh sách liên kết, phương thức thêm phần tử vào danh sách liên kết và phương thức lấy phần tử chung xuất hiện lần đầu tiên trong các danh sách liên kết này đượ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 first_common_val(list_1, list_2):
curr_1 = list_1.head
while curr_1:
data = curr_1.data
curr_2 = list_2.head
while curr_2:
if data == curr_2.data:
return data
curr_2 = curr_2.next
curr_1 = curr_1.next
return None
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))
common_vals = first_common_val(my_list_1, my_list_2)
if common_vals:
print('Phần tử xuất hiện đầu tiên trong danh sách liên kết đầu tiên và chung cho cả hai là {}.'.format(common_vals))
else:
print('Hai danh sách không có phần tử chung')
Kết quả
Nhập các phần tử của danh sách liên kết đầu tiên: 45 67 89 123 45 Nhập các phần tử của danh sách liên kết thứ hai: 34 56 78 99 0 11 Hai danh sách không có phần tử chung
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
first_common_valgiúp tìm giá trị chung đầu tiên được tìm thấy trong 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
first_common_valđượ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.