Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมรายการเชื่อมโยงแบบวงกลมของ Python


เมื่อจำเป็นต้องสร้างโปรแกรม Python ที่สร้างรายการที่เชื่อมโยง จะต้องสร้างคลาส 'Node' ในการแสดงองค์ประกอบข้อมูลในรายการแบบวงกลม สามารถกำหนดวิธีการอื่นที่จะแสดงข้อมูลได้ ในคลาสนี้ มีสองแอตทริบิวต์ ข้อมูลที่มีอยู่ในโหนด และการเข้าถึงโหนดถัดไปของรายการที่เชื่อมโยง ในรายการเชื่อมโยงแบบวงกลม ส่วนหัวและส่วนหลังอยู่ติดกัน พวกมันเชื่อมต่อกันเป็นวงกลม และไม่มีค่า 'NULL' ในโหนดสุดท้าย

ต้องสร้างคลาส 'linked_list' อีกคลาสหนึ่งซึ่งมีฟังก์ชันการเริ่มต้น และส่วนหัวของโหนดจะเริ่มต้นเป็น 'None'

ด้านล่างนี้เป็นการสาธิตสำหรับสิ่งเดียวกัน -

ตัวอย่าง

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()

ผลลัพธ์

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

คำอธิบาย

  • คลาส 'โหนด' ถูกสร้างขึ้น
  • สร้างคลาส 'circularLinkedList' อีกคลาสที่มีแอตทริบิวต์ที่จำเป็น
  • มีฟังก์ชัน 'init' ที่ใช้ในการเริ่มต้นองค์ประกอบแรก นั่นคือ 'head' เป็น 'None'
  • มีการกำหนดวิธีการอื่นที่ชื่อว่า 'add_data' ซึ่งใช้ในการเพิ่มข้อมูลไปยังรายการที่เชื่อมโยงแบบวงกลม
  • มีการกำหนดวิธีการอื่นที่ชื่อว่า 'print_it' ซึ่งใช้ในการแสดงรายการข้อมูลที่เชื่อมโยงบนคอนโซล
  • วัตถุของคลาส 'linked_list' ถูกสร้างขึ้น และมีการเรียกใช้เมธอดเพื่อเพิ่มข้อมูล
  • แสดงบนคอนโซลโดยใช้เมธอด 'print_it'