📅  最后修改于: 2023-12-03 15:10:20.610000             🧑  作者: Mango
本文介绍如何使用Python语言创建并显示循环链表。
循环链表是一种特殊的链表结构,它的最后一个结点指向头结点,形成一个环。循环链表可以像链表一样进行插入、删除、查找等操作,而且可以很方便地实现循环访问。
创建循环链表的步骤如下:
下面的代码是一个简单的循环链表实现。
class Node:
def __init__(self, data):
self.data = data
self.next = None
class CircularLinkedList:
def __init__(self):
self.head = None
self.tail = None
# 插入节点
def insert(self, data):
node = Node(data)
if self.head is None:
self.head = node
else:
self.tail.next = node
self.tail = node
self.tail.next = self.head
# 删除节点
def delete(self, item):
prev = None
curr = self.head
while curr:
if curr.data == item:
if prev is None:
self.head = curr.next
self.tail.next = self.head
else:
prev.next = curr.next
return
prev = curr
curr = curr.next
# 查找节点
def search(self, item):
curr = self.head
while curr:
if curr.data == item:
return curr
curr = curr.next
return None
# 显示链表
def display(self):
curr = self.head
while curr:
print(curr.data, end=" ")
curr = curr.next
if curr == self.head:
break
# 示例程序
if __name__ == '__main__':
lst = CircularLinkedList()
lst.insert(1)
lst.insert(2)
lst.insert(3)
lst.insert(4)
lst.display() # 输出 1 2 3 4
lst.delete(2)
lst.display() # 输出 1 3 4
循环链表是一种非常有用的数据结构。通过上面的例子,我们可以看到循环链表的基本操作是非常简单的,但是它的应用是非常广泛的。在实际开发中,我们可以使用循环链表来解决很多问题,比如约瑟夫问题等。