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

โปรแกรม Python สำหรับสร้าง Circular Linked List ของ n nodes และแสดงผลแบบย้อนกลับ


เมื่อจำเป็นต้องสร้างรายการเชื่อมโยงแบบวงกลมและแสดงในลำดับย้อนกลับ จะต้องสร้างคลาส 'โหนด'

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

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

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

ตัวอย่าง

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

ผลลัพธ์

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

คำอธิบาย

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