我知道如何使用数组实现链表。例如我们定义一个结构如下:
struct Node{
int data;
int link;
}
“data”存储信息,“link”存储下一个节点数组中的索引。
谁能告诉我与“普通”链表相比,使用数组实现链表的优点和缺点是什么?任何建议将不胜感激。
我知道如何使用数组实现链表。例如我们定义一个结构如下:
struct Node{
int data;
int link;
}
“data”存储信息,“link”存储下一个节点数组中的索引。
谁能告诉我与“普通”链表相比,使用数组实现链表的优点和缺点是什么?任何建议将不胜感激。
如果你用一个数组来支持一个链表,你最终会遇到两者的缺点。因此,这可能不是一个很好的实现方式。
一些直接的缺点:
我想一些优点是:
mmap()
调用轻松将其读回。不过,您最好使用某种协议缓冲区来实现可移植性。谁能告诉我与“普通”链表相比,使用数组实现链表的优缺点是什么?
链表具有以下复杂性:
如果您的表示使用严格的连续数组,您将有不同的复杂性:
也就是说,以数组形式实现的链表 API 的行为类似于数组。
您可以通过使用严格数组的链表或树来缓解这种情况,从而导致绳索或手指树或惰性序列。
堆栈实现两种方式。首先是使用数组,其次是使用链表。
使用数组的一些缺点,然后大多数程序员在堆栈实现中使用链表。
首先是使用链表的堆栈首先不声明堆栈大小并且不限制堆栈中的数据存储。其次是指针式中的链表来声明和使用它。
链表中只使用一个指针。它称为顶部指针。
堆栈是 lifo 方法使用。但在链表程序实现中存在一些缺点。
大多数程序员使用喜欢列表使用堆栈实现。
使用数组实现,您可以对列表的节点进行顺序和更快的访问,另一方面,如果您使用指针实现链接列表,您可以随机访问节点。当您处理固定编号时,数组实现很有帮助。元素,因为就性能而言,调整数组的大小是昂贵的,因为如果需要从列表中间插入/删除节点,则必须在之后移动每个节点。与此相反,当您不知道否时,您应该使用指针实现。您想要的节点,因为这样的列表可以有效地增长/缩小并且您不需要移动任何节点,它可以通过简单地取消引用和引用指针来完成。