ภาพรวม
เมื่อต้องการตรวจสอบว่า 2 Linked List เหมือนกันหรือไม่ จะนิยามเมธอดเพิ่มองค์ประกอบ และเมธอดตรวจสอบความเท่าเทียมขององค์ประกอบใน Linked List
ตัวอย่างโค้ด
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('Enter the elements of the first linked list: ').split()
for elem in my_list:
my_linked_list_1.add_vals(int(elem))
my_list = input('Enter the elements of the second linked list: ').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('The two linked lists are the same')
else:
print('The two linked list are not same')
ผลลัพธ์ตัวอย่าง
Enter the elements of the first linked list: 34 56 89 12 45 Enter the elements of the second linked list: 57 23 78 0 2 The two linked list are not same
คำอธิบาย
- สร้างคลาส
Node - สร้างคลาส
LinkedList_structureพร้อมแอตทริบิวต์ที่จำเป็น - เมธอด
__init__เริ่มต้นโหนดแรก (head) และlast_nodeเป็นNone - เมธอด
add_valsเพิ่มค่าเข้า Linked List - เมธอด
check_equalityตรวจสอบว่าองค์ประกอบใน 2 Linked List เหมือนกันหรือไม่ - คืนค่า
TrueหรือFalseขึ้นอยู่กับความเท่าเทียม - สร้างอินสแตนซ์ 2 ตัวของ
LinkedList_structure - เพิ่มองค์ประกอบเข้า Linked List ทั้งสอง
- เรียกเมธอด
check_equalityกับ Linked List ทั้งสอง - แสดงผลลัพธ์บนคอนโซล