Computer >> 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 từ ​​danh sách được liên kết kép

Khi cần tìm giá trị tối đa và giá trị nhỏ nhất từ ​​danh sách được liên kết kép, lớp ‘Node’ cần được tạo. Trong lớp này, có ba thuộc tính, dữ liệu có trong nút, quyền truy cập vào nút tiếp theo của danh sách được liên kết và quyền truy cập vào nút trước đó của danh sách được liên kết.

Dưới đây là một minh chứng cho điều tương tự -

Ví dụ

Nút
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 == 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 == None):
         print("The list is empty")
         return 0
      else:
         min = self.head.data
         while(curr != None):
            if(min > curr.data):
               min = curr.data
            curr = curr.next
         return min
   def max_node(self):
      curr = self.head
      if(self.head == None):
         print("The list is empty")
         return 0
      else:
         max = self.head.data
         while(curr != None):
            if(curr.data > max):
               max = curr.data
            curr = curr.next
      return max
   def print_it(self):
      curr = self.head
      if (self.head == None):
         print("The list is empty")
         return
      print("The nodes in the doubly linked list are :")
      while curr != None:
         print(curr.data)
         curr = curr.next
my_instance = double_list()
print("Elements are being added to the doubly linked list")
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("The node with maximum value is : ")
print(my_instance.max_node())
print("The node with minimum value is : ")
print(my_instance.min_node())

Đầu ra

Elements are being added to the doubly linked list
The nodes in the doubly linked list are :
10
24
54
77
92
The node with maximum value is :
92
The node with minimum value is :
10

Giải thích

  • Lớp 'Node' đã được tạo.
  • Một lớp khác với các thuộc tính bắt buộc được tạo.
  • Một phương thức có tên 'add_data' được xác định, được sử dụng để thêm dữ liệu vào danh sách được liên kết kép.
  • Một phương thức khác có tên là 'print_it' được xác định, phương thức này sẽ hiển thị các nút của danh sách liên kết vòng tròn.
  • Một phương thức khác có tên là 'max_node' được xác định để tìm kiếm giá trị lớn nhất trong danh sách được liên kết kép.
  • Một phương thức khác có tên là 'min_node' được xác định để tìm kiếm giá trị nhỏ nhất trong danh sách được liên kết kép.
  • Một đối tượng của lớp 'double_list' được tạo và các phương thức được gọi trên nó để tìm các giá trị tối thiểu và tối đa của một nút trong danh sách được liên kết kép.
  • Một phương thức 'init' được xác định, rằng các nút gốc, đầu và cuối của danh sách được liên kết kép thành Không.
  • Danh sách được lặp lại và các giá trị tối đa và nhỏ nhất được tìm thấy.
  • Điều này được hiển thị trên bảng điều khiển bằng phương thức "print_it".