我知道数组的值可以通过它们的位置直接访问,链表必须逐个查看它们,但是在搜索发生时不知道如何解释它们的开销和存储方面的差异。 / p>
(我想更多的是先前节点是否需要临时存储某个地方,同时尝试访问下一个节点时系统部分上的任何额外存储空间或开销?当搜索数组时相同) / p>
有人能详细介绍在每个结构中进行搜索时会发生什么吗?或者只是指向正确的方向
答案 0 :(得分:2)
数组是固定大小的矢量变量。
链接列表没有指定大小:列表的每个元素都包含指向下一个元素的指针。这就是你需要按顺序迭代它的原因。这里的优点是不应该在顺序的内存块中分配结构,如果在其中添加更多元素,则不需要调整大小。
同样在数组中,如果删除元素,则需要移动所有先前的元素。如果在数组的中间插入元素,则需要移动元素以为新元素腾出空间。在列表中,您只需更新指针:
另一方面,数组可以随机访问,不需要顺序访问:因此搜索对象,排序等更快。
答案 1 :(得分:2)
随机访问列表元素允许您实现搜索算法,例如二进制搜索,这对于使用链表是不切实际的。