【发布时间】:2015-06-19 18:08:51
【问题描述】:
我有一个链表,我想编写一个函数来遍历每个节点,并返回适当的元素。像这样的:
struct list* returnElements(struct list *head){
for (; head != NULL ; head=head->next){
if (head->field1 == "something")
return head;
}
然后调用 returnElements 的函数会以某种方式捕获每个返回的节点,并对其进行处理。
这有可能吗?
【问题讨论】:
-
此函数将在第一个有效元素上结束,您可能希望将每个有效元素存储在列表或堆栈等中,然后返回
-
在
returnElements中你可以构造一个新列表,并返回这个列表。您不能通过单独的返回返回多个元素。 -
您希望在每次运行
returnElements时返回多个(指向)节点?是的,这是可能的。 -
您可以从函数返回节点指针的集合。你想要什么类型的集合取决于你,可以简单地是一个数组类型的结构,甚至是另一个列表。
-
您在搜索Implementing linked list with iterator interface吗?它引用了C Iterators 的实现。