保存链表内部迭代器

时间:2013-08-26 16:42:55

标签: c linked-list

我有一些基于链表的ADT。 我的许多函数使用以下算法来查找某个特定的列表元素:

currentElement = listGetFirst(list)
while (currentElement != neededElement)
{
currentElement = listGetNext(list);
}

现在我想编写2个函数来保存内部迭代器并将其恢复,如下所示:

void listSaveIterator(List list, ListElement *iterator)
{
    *iterator = listGetCurrent(list);
}

void listRestore(List list, ListElement iterator)
{
    ListElement element = listGetFirst(list);
    while (element != NULL)
    {
        if (element == iterator)
        {
            return;
        }
        element = listGetNext(list);
    }
}

这会有用吗? 有更好的方法吗?

0 个答案:

没有答案