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

Chương trình Python tìm nút giá trị lớn nhất và nhỏ nhất trong danh sách liên kết đôi


Khi cần tìm nút có giá trị lớn nhất và nhỏ nhất trong danh sách liên kết đôi, ta duyệt từ head đến tail so sánh giá trị.

Ví dụ

class Node:
    def __init__(self, my_data):
        self.prev = None
        self.data = my_data
        self.next = None

class double_list:
    def __init__(self):
        self.head = None
        self.tail = None

    def add_data(self, my_data):
        new_node = Node(my_data)
        if self.head is None:
            self.head = self.tail = new_node
            self.head.previous = None
            self.tail.next = None
        else:
            self.tail.next = new_node
            new_node.previous = self.tail
            self.tail = new_node
            self.tail.next = None

    def min_node(self):
        curr = self.head
        if self.head is None:
            print("Danh sách rỗng")
            return 0
        min_val = self.head.data
        while curr is not None:
            if min_val > curr.data:
                min_val = curr.data
            curr = curr.next
        return min_val

    def max_node(self):
        curr = self.head
        if self.head is None:
            print("Danh sách rỗng")
            return 0
        max_val = self.head.data
        while curr is not None:
            if curr.data > max_val:
                max_val = curr.data
            curr = curr.next
        return max_val

    def print_it(self):
        curr = self.head
        if self.head is None:
            print("Danh sách rỗng")
            return
        print("Các nút trong danh sách liên kết đôi:")
        while curr is not None:
            print(curr.data)
            curr = curr.next

my_instance = double_list()
print("Thêm phần tử vào danh sách liên kết đôi")
my_instance.add_data(10)
my_instance.add_data(24)
my_instance.add_data(54)
my_instance.add_data(77)
my_instance.add_data(92)
my_instance.print_it()
print("Nút giá trị lớn nhất:")
print(my_instance.max_node())
print("Nút giá trị nhỏ nhất:")
print(my_instance.min_node())

Kết quả

Thêm phần tử vào danh sách liên kết đôi
Các nút trong danh sách liên kết đôi:
10
24
54
77
92
Nút giá trị lớn nhất:
92
Nút giá trị nhỏ nhất:
10

Giải thích

  • Lớp Node và double_list cơ bản.
  • min_node duyệt danh sách, cập nhật min_val.
  • max_node duyệt danh sách, cập nhật max_val.
  • Thêm 5 phần tử, in danh sách, in max và min.