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