有效地搜索链表

时间:2017-03-26 21:28:36

标签: c search linked-list

我有一个C编程课的作业,我们使用链接列表。

一个函数获取根指针和Id,并在列表中搜索以删除它。我已根据这些ID对链接列表进行了排序。

有没有办法有效地搜索链表而不进行线性搜索?该任务暗示他们是一个更好的方式,但我想不出一种方法来做到这一点,而不是非常低效或只是使用线性搜索。

1 个答案:

答案 0 :(得分:1)

链表中的每个节点只包含指向下一个节点(以及可选的前一个节点)的指针,因此没有任何其他结构,搜索列表的唯一方法是线性的。

但是,由于您对列表进行排序,因此可以在该过程中构建二叉树。然后,您可以使用该树搜索时间复杂度为O(log n)而不是O(n)的列表。