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

Chương trình Python để chuyển đổi một danh sách liên kết đơn nhất định thành một danh sách tròn

Khi cần chuyển đổi một danh sách được liên kết đơn lẻ thành một danh sách được liên kết vòng tròn, một phương thức có tên ‘convert_to_circular_list’ được xác định để đảm bảo rằng các phần tử cuối cùng trỏ đến phần tử đầu tiên, do đó làm cho nó có bản chất là hình tròn.

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

Ví dụ

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

class LinkedList_struct:
   def __init__(self):
      self.head = None
      self.last_node = None

   def add_elements(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 convert_to_circular_list(my_list):
   if my_list.last_node:
      my_list.last_node.next = my_list.head

def last_node_points(my_list):
   last = my_list.last_node
      if last is None:
         print('The list is empty...')
         return
      if last.next is None:
         print('The last node points to None...')
      else:
         print('The last node points to element that has {}...'.format(last.next.data))

my_instance = LinkedList_struct()

my_input = input('Enter the elements of the linked list.. ').split()
for data in my_input:
   my_instance.add_elements(int(data))

last_node_points(my_instance)

print('The linked list is being converted to a circular linked list...')
convert_to_circular_list(my_instance)

last_node_points(my_instance)

Đầu ra

Enter the elements of the linked list.. 56 32 11 45 90 87
The last node points to None...
The linked list is being converted to a circular linked list...
The last node points to element that has 56...

Giải thích

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

  • Một lớp ‘LinkedList_struct’ 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_elements’ được xác định, được sử dụng để tìm nạp nút trước đó trong danh sách được liên kết.

  • Một phương thức khác có tên là ‘convert_to_circular_list’ được định nghĩa để trỏ nút cuối cùng đến nút đầu tiên, làm cho nó có bản chất là hình tròn.

  • Một phương thức có tên là ‘last_node_points’ được xác định, sẽ kiểm tra xem danh sách có trống hay không hoặc nút cuối cùng trỏ đến ‘Không có’ hay nó trỏ đến một nút cụ thể của danh sách được liên kết.

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

  • Đầu vào của người dùng được sử dụng cho các 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 liên kết.

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

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