我知道在链表中你不需要预先分配的内存,插入和删除方法真的很容易,我真正了解堆栈的唯一方法就是push和pop方法。
答案 0 :(得分:1)
链接列表适用于在随机位置插入和删除元素。在堆栈中,我们只会附加到末尾或从末尾删除。
答案 1 :(得分:0)
链接列表与数组(堆栈)
阵列和链接列表都可用于存储相似类型的线性数据,但它们都有一些优点和缺点。
以下是有利于链接列表的要点。
(1)数组的大小是固定的:所以我们必须事先知道元素数量的上限。此外,通常,分配的内存不论用途如何都等于上限,在实际使用中,很少达到上限。
(2)在元素数组中插入一个新元素是很昂贵的,因为必须为新元素创建空间并创建空间,现有元素必须移位。
例如,假设我们在数组id []中维护一个已排序的ID列表。
id [] = [1000,1010,1050,2000,2040,...... ..]。
如果我们想插入新的ID 1005,那么为了维护排序的顺序,我们必须在1000之后移动所有元素(不包括1000)。
除非使用某些特殊技术,否则删除对于数组来说也很昂贵。例如,要删除id []中的1010,必须移动1010之后的所有内容。
因此,链接列表提供了超过数组的以下两个优点 1)动态尺寸 2)易于插入/删除
链接列表有以下缺点: 1)不允许随机访问。我们必须从第一个节点开始按顺序访问元素。所以我们不能用链表进行二进制搜索。 2)列表的每个元素都需要指针的额外内存空间。 3)数组具有更好的缓存局部性,可以在性能上产生很大的差异。