Khi cần tìm phần tử lớn nhất trong danh sách liên kết kép, các phương thức thêm phần tử vào danh sách liên kết kép, in các phần tử của danh sách liên kết kép và tìm phần tử lớn nhất trong danh sách liên kết kép được định nghĩa.
Ví dụ
class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
class DoublyLinkedList_structure:
def __init__(self):
self.first = None
self.last = None
def add_vals(self, data):
self.insert_at_end(Node(data))
def insert_at_end(self, newNode):
if self.last is None:
self.last = newNode
self.first = newNode
else:
newNode.prev = self.last
self.last.next = newNode
self.last = newNode
def find_largest_val(my_list):
if my_list.first is None:
return None
largest_val = my_list.first.data
curr = my_list.first.next
while curr:
if curr.data > largest_val:
largest_val = curr.data
curr = curr.next
return largest_val
my_instance = DoublyLinkedList_structure()
my_list = input('Nhập các phần tử trong danh sách liên kết kép: ').split()
for elem in my_list:
my_instance.add_vals(int(elem))
largest_val = find_largest_val(my_instance)
if largest_val:
print('Phần tử lớn nhất là {}.'.format(largest_val))
else:
print('Danh sách rỗng.')
Kết quả
Nhập các phần tử trong danh sách liên kết kép: 45 12 67 89 234 567 888 44 999 Phần tử lớn nhất là 999.
Giải thích
- Lớp
Nodeđược tạo. - Lớp
DoublyLinkedList_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 (first) làNone. - Phương thức
add_valsgiúp thêm giá trị vào danh sách. - Phương thức
insert_at_endgiúp thêm giá trị vào cuối danh sách liên kết kép. - Phương thức
find_largest_valgiúp tìm giá trị lớn nhất trong toàn bộ danh sách liên kết kép. - Một instance của
DoublyLinkedList_structuređược tạo. - Các phần tử được thêm vào danh sách liên kết.
- Phương thức
find_largest_valđược gọi trên danh sách liên kết kép này. - Kết quả được hiển thị trên console.