Python程序创建一个由n个节点组成的循环链表,并倒序显示它
当需要创建一个循环链表并逆序显示它时,需要创建一个’Node’类。
为了逆序显示循环列表中的数据元素,可以定义另一个方法来反转数据。在这个类中,有两个属性,一个是节点中存在的数据,另一个是访问链表下一个节点的访问器。在循环链表中,头和尾相邻,它们互相连接成为一个圆,并且在最后一个节点上没有’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
解释
- 创建了’Node’类。
- 创建了另一个具有所需属性的’linked_list’类。
- 定义了另一个名为’add_data’的方法,该方法用于将数据添加到循环链表中。
- 定义了另一个名为’reverse’的方法,该方法反转存储在循环链表中的数据。
- 定义了另一个名为’print_it’的方法,该方法用于在控制台上显示链表数据。
- 创建了’linked_list’类的对象,并将数据添加到其中。
- 使用’reverse’方法将其翻转。
- 使用’print_it’方法在控制台上显示。