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

Chương trình danh sách liên kết vòng tròn Python

Khi được yêu cầu tạo một chương trình Python để tạo danh sách liên kết, một lớp 'Node' cần được tạo. Để hiển thị các phần tử dữ liệu trong danh sách vòng tròn, một phương pháp khác có thể được xác định để hiển thị 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ụ

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

class circularLinkedList:  
   def __init__(self):
      self.head = None
   def add_data(self, my_data):
      ptr_1 = Node(my_data)
      temp = self.head    
      ptr_1.next = self.head

      if self.head is not None:
         while(temp.next != self.head):
            temp = temp.next
         temp.next = ptr_1
      else:
         ptr_1.next = ptr_1
      self.head = ptr_1

   def print_it(self):
      temp = self.head
      if self.head is not None:
         while(True):
            print("%d" %(temp.data)),
            temp = temp.next
            if (temp == self.head):
               break
my_list = circularLinkedList()
print("Elements are added to the list ")
my_list.add_data (56)
my_list.add_data (78)
my_list.add_data (12)
print("The data is : ")
my_list.print_it()

Đầu ra

Elements are added to the list
The data is :
12
78
56

Giải thích

  • Lớp 'Node' đã được tạo.
  • Một lớp 'circleLinkedList' khác với các thuộc tính bắt buộc được tạo.
  • Nó có một hàm '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 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 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à các phương thức được gọi trên đó để thêm dữ liệu.
  • Điều này được hiển thị trên bảng điều khiển bằng phương thức 'print_it'.