0

我有一些基于链表的 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);
    }
}

这行得通吗?有更好的方法吗?

4

0 回答 0