Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python chỉ đảo ngược N phần tử đầu tiên của danh sách được liên kết

Khi được yêu cầu đảo ngược một tập hợp phần tử cụ thể trong danh sách được liên kết, một phương thức có tên là "reverse_list" được xác định. Điều này lặp lại qua danh sách và đảo ngược tập hợp các phần tử cụ thể.

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

Ví dụ

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 print_it(self):
      curr = self.head
      while curr:
         print(curr.data)

         curr = curr.next
def reverse_list(my_list, n):
   if n == 0:
      return
   before_val = None
   curr = my_list.head
   if curr is None:
      return
   after_val = curr.next
   for i in range(n):
      curr.next = before_val
      before_val = curr
      curr = after_val
      if after_val is None:
         break
      after_val = after_val.next
   my_list.head.next = curr
   my_list.head = before_val

my_instance = LinkedList_structure()
my_list = input('Enter the elements of the linked list... ').split()
for elem in my_list:
   my_instance.add_vals(int(elem))
n = int(input('Enter the number of elements you wish to reverse in the list... '))

reverse_list(my_instance, n)

print('The new list is : ')
my_instance.print_it()

Đầu ra

Enter the elements of the linked list... 45 67 89 12 345
Enter the number of elements you wish to reverse in the list... 3
The new list is :
89
67
45
12
345

Giải thích

  • Lớp 'Node' được tạo.

  • Một lớp ‘LinkedList_ architects’ khác với các thuộc tính bắt buộc được tạo.

  • Nó có chức năng ‘init’ được sử dụng để khởi tạo phần tử đầu tiên, tức là ‘head’ thành ‘None’.

  • Một phương thức có tên là ‘add_vals’ được xác định, giúp thêm một giá trị vào ngăn xếp.

  • Một phương thức khác có tên là ‘print_it’ được xác định, giúp hiển thị các giá trị của danh sách được liên kết trên bảng điều khiển.

  • Một phương thức khác có tên là "reverse_list" được xác định, giúp đảo ngược tập hợp các phần tử cụ thể của danh sách được liên kết.

  • Một phiên bản của ‘LinkedList_ architects’ được tạo.

  • Các phần tử được thêm vào danh sách liên kết.

  • Các phần tử được hiển thị trên bảng điều khiển.

  • Số phần tử cần được đảo ngược được lấy từ người dùng.

  • Phương thức "reverse_list" được gọi trong danh sách được liên kết này.

  • Đầu ra được hiển thị trên bảng điều khiển.