下面是一个示例代码,展示了如何使用迭代器来遍历打印链表:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
else:
curr_node = self.head
while curr_node.next:
curr_node = curr_node.next
curr_node.next = new_node
def __iter__(self):
curr_node = self.head
while curr_node:
yield curr_node.data
curr_node = curr_node.next
# 创建链表
my_list = LinkedList()
my_list.append(1)
my_list.append(2)
my_list.append(3)
# 使用迭代器遍历打印链表
for node_data in my_list:
print(node_data)
在上面的代码中,首先定义了一个Node
类来表示链表中的节点,每个节点包含一个数据项data
和一个指向下一个节点的引用next
。
然后,定义了一个LinkedList
类来表示链表,其中包含一个头节点head
。链表对象还实现了append
方法来在链表末尾添加新节点。
为了使链表可迭代,我们在LinkedList
类中实现了__iter__
方法。在该方法中,我们使用一个循环来遍历链表中的所有节点,并使用yield
关键字来生成每个节点的数据项。
最后,我们创建了一个链表对象my_list
,并通过调用append
方法来添加一些节点。然后,使用for
循环和迭代器来遍历打印链表中的节点数据。
上一篇:遍历大型数据集的最佳方式
下一篇:遍历df并创建新的df