创建一个带头结点的单循环链表
时间: 2023-10-17 07:05:30 浏览: 140
数据结构算法 习题 答案 带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针).pdf
5星 · 资源好评率100%
以下是Python代码实现:
```python
class Node:
def __init__(self, val=None):
self.val = val
self.next = None
class CircularLinkedList:
def __init__(self):
self.head = Node()
self.head.next = self.head
def add_node(self, val):
new_node = Node(val)
cur = self.head
while cur.next != self.head:
cur = cur.next
cur.next = new_node
new_node.next = self.head
def print_list(self):
cur = self.head.next
while cur != self.head:
print(cur.val, end=" ")
cur = cur.next
print()
# 测试代码
if __name__ == "__main__":
linked_list = CircularLinkedList()
linked_list.add_node(1)
linked_list.add_node(2)
linked_list.add_node(3)
linked_list.add_node(4)
linked_list.print_list() # 输出:1 2 3 4
```
这是一个带头结点的单循环链表,头结点的值为空。在构造方法中,我们创建了一个头结点,并将它的`next`指向自己,形成一个空链表。`add_node`方法用于向链表中添加节点,它会遍历链表直到找到最后一个节点,然后将新节点插入到链表末尾。`print_list`方法用于打印链表中的所有节点值。
阅读全文