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

Chương trình Python tìm phần tử lớn nhất trong danh sách liên kết kép

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_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 (first) là None.
  • Phương thức add_vals giúp thêm giá trị vào danh sách.
  • Phương thức insert_at_end giúp thêm giá trị vào cuối danh sách liên kết kép.
  • Phương thức find_largest_val giú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.