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

Chương trình Python để in các nút thay thế trong danh sách được liên kết bằng cách sử dụng đệ quy

Khi được yêu cầu in các nút thay thế trong danh sách được liên kết bằng cách sử dụng đệ quy, một phương pháp để thêm các phần tử vào danh sách được liên kết, một phương pháp để hiển thị các phần tử của danh sách được liên kết và một phương pháp để nhận các giá trị thay thế của một danh sách được liên kết là được xác định. Một hàm trợ giúp khác được sử dụng để gọi phương thức đã xác định trước đó để nhận các giá trị thay 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 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 print_it(self):
      curr = self.head
      while curr:
         print(curr.data)
         curr = curr.next

   def alternate_nodes(self):
      self.alternate_helper_fun(self.head)

   def alternate_helper_fun(self, curr):
      if curr is None:
         return
      print(curr.data, end = ' ')
      if curr.next:
         self.alternate_helper_fun(curr.next.next)

my_instance = my_linked_list()
my_list = input("Enter the elements of the linked list :").split()
for elem in my_list:
   my_instance.add_value(elem)
print("The alternate elements in the linked list are :")
my_instance.alternate_nodes()

Đầu ra

Enter the elements of the linked list :78 56 34 52 71 96 0 80
The alternate elements in the linked list are :
78 34 71 0

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à ‘print_it’ được xác định, phương thức này sẽ lặp qua danh sách và in các phần tử.

  • Một phương thức khác có tên là 'alternate_nodes' được định nghĩa dùng để gọi hàm trợ giúp.

  • Một hàm trợ giúp khác, có tên là ‘alternate_helper_fun’ được định nghĩa dùng để lặp qua danh sách được liên kết và hiển thị các phần tử trong các chỉ số thay thế.

  • Đây là một hàm đệ quy, do đó nó tự gọi lại nhiều lần.

  • Điều này được sử dụng để gọi hàm 'alternate_nodes' vì đệ quy đang được sử dụng.

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

  • Phương thức alternate_nodes được gọi để hiển thị các phần tử thay thế.

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