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

Chương trình Python để tạo Danh sách liên kết hình tròn gồm n nút và hiển thị nó theo thứ tự ngược lại

Khi cần tạo danh sách liên kết vòng tròn và hiển thị theo thứ tự ngược lại, lớp 'Nút' cần được tạo.

Để hiển thị các phần tử dữ liệu trong danh sách vòng tròn theo thứ tự ngược lại, một phương pháp khác có thể được xác định, phương pháp này sẽ đảo ngược dữ liệu. Trong lớp này, có hai thuộc tính, dữ liệu có trong nút và quyền truy cập vào nút tiếp theo của danh sách liên kết. Trong danh sách liên kết hình tròn, phần đầu và phần sau nằm liền kề nhau. Chúng được kết nối để tạo thành một vòng kết nối và không có giá trị 'NULL' trong nút cuối cùng.

Một lớp 'linked_list' khác cần được tạo sẽ có chức năng khởi tạo và phần đầu của nút sẽ được khởi tạo thành 'Không có'.

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.data = my_data
      self.next = None

class linked_list:
   def __init__(self):
      self.head = None
     
   def add_data(self,my_data):
      new_node = Node(my_data)
      new_node.next = self.head
      self.head = new_node
   
   def reverse(self):
      prev = None
      current = self.head
      while(current is not None):
         next = current.next
         current.next = prev
         prev = current
         current = next
      self.head = prev
   
   def print_it(self):
      temp = self.head
      while(temp):
         print(temp.data)
         temp = temp.next

my_list = linked_list()
my_list.add_data(47)
my_list.add_data(89)
my_list.add_data(34)
my_list.add_data(11)

print("The list is : ")
my_list.print_it()
print("The list is being reversed")
my_list.reverse()
print("The reversed list is : ")
my_list.print_it()

Đầu ra

The list is :
11
34
89
47
The list is being reversed
The reversed list is :
47
89
34
11

Giải thích

  • Lớp 'Node' đã được tạo.
  • Một lớp 'danh sách liên kết' khác với các thuộc tính bắt buộc được tạo.
  • Một phương pháp khác có tên 'add_data' được xác định, được sử dụng để thêm dữ liệu vào danh sách liên kết vòng tròn.
  • Một phương pháp khác có tên là "đảo ngược" được xác định, phương thức này sẽ đảo ngược dữ liệu được lưu trữ trong danh sách liên kết vòng tròn.
  • Một phương thức khác có tên 'print_it' được xác định dùng để hiển thị dữ liệu danh sách liên kết trên bảng điều khiển.
  • Một đối tượng của lớp 'linked_list' được tạo và dữ liệu được thêm vào nó.
  • Nó được đảo ngược bằng phương pháp "reverse".
  • Điều này được hiển thị trên bảng điều khiển bằng phương thức 'print_it'.