循环单链表的实现与测试
时间: 2024-09-28 20:05:51 浏览: 40
循环单链表是一种特殊的单链表,它的最后一个节点指向头节点形成一个环,使得遍历可以无限制地进行下去。在实现循环单链表时,通常会添加额外的一个指针来标识链表的起始位置,而不是传统的只有一个next指针。
以下是基本的循环单链表节点结构以及其创建、插入和删除操作的示例:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class CircularLinkedList:
def __init__(self):
self.head = None
self.size = 0
# 插入元素到链表尾部
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
new_node.next = self.head
else:
current = self.head
while current.next != self.head:
current = current.next
current.next = new_node
new_node.next = self.head
# 删除指定节点(如果存在)
def delete(self, target_data):
if not self.head:
return
if self.head.data == target_data:
if self.head.next == self.head:
self.head = None
else:
self.head = self.head.next
else:
current = self.head
while current.next != self.head and current.data != target_data:
current = current.next
if current.next == self.head:
print(f"Node with {target_data} not found.")
else:
current.next = current.next.next
# 遍历并打印链表
def traverse(self):
current = self.head
while True:
print(current.data, end=" -> ")
current = current.next
if current == self.head:
break
```
在测试循环单链表时,应关注是否能正确地插入、删除节点,以及遍历结果是否符合预期。
阅读全文