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

Chương trình Python để hiển thị các nút của một danh sách được liên kết trong Đảo ngược bằng cách sử dụng Đệ quy

Khi cần hiển thị các phần tử / nút trong danh sách được liên kết theo thứ tự ngược lại, sử dụng phương pháp đệ quy, một phương pháp để thêm giá trị vào danh sách được liên kết, cũng như một phương pháp để đảo ngược các phần tử của một Danh sách được Liên kết. Nó cũng sẽ có một phương thức trợ giúp sử dụng đệ quy, tức là gọi đi gọi lại hàm trợ giúp để tính toán các giá trị.

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 my_linked_list:
   def __init__(self):
      self.head = None
      self.last_node = None

   def add_value(self, my_data):
      if self.last_node is None:
         self.head = Node(my_data)
         self.last_node = self.head
      else:
         self.last_node.next = Node(my_data)
         self.last_node = self.last_node.next

   def reverse_display(self):
      self.helper_reverse_display(self.head)

   def helper_reverse_display(self, curr):
      if curr is None:
         return

      self.helper_reverse_display(curr.next)
      print(curr.data)

my_instance = my_linked_list()
n = int(input('How many elements you wish to add ? '))
for i in range(n):
   data = int(input('Enter the data item : '))
   my_instance.add_value(data)

print('The reversed linked list is: ')
my_instance.reverse_display()

Đầu ra

How many elements you wish to add ? 4
Enter the data item : 21
Enter the data item : 34
Enter the data item : 56
Enter the data item : 68
The reversed linked list is:
68
56
34
21

Giải thích

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

  • Một lớp ‘my_linked_list’ 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’ và nút cuối cùng thành ‘None’.

  • Một phương thức khác có tên là ‘add_value’ được xác định, được sử dụng để thêm dữ liệu vào danh sách được liên kết.

  • Một phương thức khác có tên là ‘reverse_display’ được xác định dùng để hiển thị dữ liệu danh sách được liên kết theo thứ tự ngược lại trên bảng điều khiển.

  • Một hàm trợ giúp khác được định nghĩa, vì cần sử dụng đệ quy ở đây.

  • 'Reverse_display' được gọi trong hàm trợ giúp.

  • Một đối tượng của lớp ‘my_linked_list’ được tạo.

  • Đầu vào của người dùng được lấy cho số phần tử trong danh sách được liên kết.

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

  • Phạm vi này được lặp lại và các phương thức được gọi trên đó để thêm dữ liệu.

  • Phần tử cần tìm kiếm được lấy làm đầu vào của người dùng và nó được tìm kiếm.

  • Chỉ mục của phần tử này, nếu được tìm thấy, sẽ được hiển thị trên bảng điều khiển.