单向循环链表应用实例代码
时间: 2023-05-26 21:03:45 浏览: 109
单向循环链表
以下是一个使用单向循环链表的应用实例代码,该代码实现了一个简单的计数器:
```python
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class Counter:
def __init__(self):
self.head = None
self.tail = None
self.current = None
self.count = 0
def add_node(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
self.tail = new_node
new_node.next = self.head
else:
self.tail.next = new_node
new_node.next = self.head
self.tail = new_node
self.count += 1
def get_next(self):
if self.current is None:
self.current = self.head
else:
self.current = self.current.next
return self.current.data
def get_count(self):
return self.count
```
该计数器使用单向循环链表来实现。每次调用`add_node()`方法时,代码将创建一个新的`Node`对象,并将它添加到链表的末尾。`get_next()`方法可以用于获取下一个节点的值,并维护一个指向当前节点的`current`指针。最后,`get_count()`方法可以返回链表中元素的数量。
以下是一个使用计数器的示例代码:
```python
c = Counter()
c.add_node(1)
c.add_node(2)
c.add_node(3)
for i in range(c.get_count()):
print(c.get_next())
```
输出:
```
1
2
3
```
阅读全文