有效地查找链接列表中是否存在元素

时间:2013-03-13 08:39:12

标签: c singly-linked-list

预先假定有一个包含信息的链表。我的程序体系结构依赖于能够找出该链表中的单个节点中是否已存在某些信息。

(即,看看子节点整数值int example在某个节点中的值是否已为5。)

之后,可以系统地操作每个节点。

我可以想到各种方法来做到这一点,但我希望有经验的人能够表现出相当高效的东西。

此外,这是一个好的做法,还是应该有另一种更合适的数据结构?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果O(N)不够,排序数组和二进制搜索,或BST会给你O(log(N))。或者,您可以查看hashmap data structure。此结构将为您提供基于密钥的几乎恒定的时间查找,但比其他选项更复杂。问题在于is no std library implementation of one

否则,搜索每个元素是您希望使用链接列表的最佳选择。