Data structures 为什么要使用链接列表而不是数组或向量实现堆栈或队列?

Data structures 为什么要使用链接列表而不是数组或向量实现堆栈或队列?,data-structures,Data Structures,因此,我知道使用向量或数组实现堆栈或队列具有以下属性: 关于搜索 至少阵列实现都在堆栈上,而不是堆上 O1顶部/前部或后部/底部窥视 如果数组的空间限制是一个问题,那么您将使用向量实现堆栈或队列,那么为什么会有人使用链接列表实现这些数据结构之一呢?任何实际的例子都是很棒的,如果不同于数组/向量实现,一些基本功能的大O表示。对于队列, 队列,当在队列添加/删除中间的数据操作:链表O1时,链表会提供更快的结果。如果使用数组或向量实现,它将处于启用状态,因为必须移动其他元素来为新元素创建空间,或者填充

因此,我知道使用向量或数组实现堆栈或队列具有以下属性:

关于搜索 至少阵列实现都在堆栈上,而不是堆上 O1顶部/前部或后部/底部窥视
如果数组的空间限制是一个问题,那么您将使用向量实现堆栈或队列,那么为什么会有人使用链接列表实现这些数据结构之一呢?任何实际的例子都是很棒的,如果不同于数组/向量实现,一些基本功能的大O表示。对于队列,

队列,当在队列添加/删除中间的数据操作:链表O1时,链表会提供更快的结果。如果使用数组或向量实现,它将处于启用状态,因为必须移动其他元素来为新元素创建空间,或者填充已删除元素的空间


至于堆栈,我参考这个答案:

< P>队列,当在队列Ad/Dele: O1的中间操作数据时,链表会提供更快的结果。如果使用数组或向量实现,它将处于启用状态,因为必须移动其他元素来为新元素创建空间,或者填充已删除元素的空间


关于堆栈,我建议您参考以下答案:

LinkedList是Java中的一个队列,如果您希望能够动态增长,您可能希望在数组上使用它。如果您希望动态增长,您就不能使用向量实现队列或堆栈吗?对不起,我更倾向于C++,让scratchA LinkedList自己的栈或队列是java中的队列,如果你想动态增长,你可能想在数组上使用它。如果你想动态增长,难道你不能用向量实现队列或堆栈吗?对不起,我更倾向于C++来做自己的堆栈或队列。但是,我不认为需要插入队列中间,因此队列应该是先入先出算法,如果有什么可以插入后面或前面的DEQE。如果您开始添加其他功能,如insertbeforeLast、insertBeforeIndex等,那么这通常是一个链接列表。很抱歉,我的回复中没有包括实现示例。如果队列是优先级队列,则需要对其中间部分进行操作。在优先级较低的其他元素之前,需要添加具有高优先级的元素,但在中间优先级较高的元素之后。此外,在现实世界中,人们可以退出队列,所以在队列中间可能需要删除。很好的例子,完全有意义,而且使用链接列表来实现这一点要容易得多,而不是处理所有索引的移动等等。谢谢!这里有一个更好的答案,因为我的不是传统的FIFO:下次,一个简单的谷歌搜索将产生更快的结果。很高兴我能帮上忙!希望链接更清晰。谢谢,我为stack阅读了这篇文章。但是,我不认为需要插入队列中间,因此队列应该是先入先出算法,如果有什么可以插入后面或前面的DEQE。如果您开始添加其他功能,如insertbeforeLast、insertBeforeIndex等,那么这通常是一个链接列表。很抱歉,我的回复中没有包括实现示例。如果队列是优先级队列,则需要对其中间部分进行操作。在优先级较低的其他元素之前,需要添加具有高优先级的元素,但在中间优先级较高的元素之后。此外,在现实世界中,人们可以退出队列,所以在队列中间可能需要删除。很好的例子,完全有意义,而且使用链接列表来实现这一点要容易得多,而不是处理所有索引的移动等等。谢谢!这里有一个更好的答案,因为我的不是传统的FIFO:下次,一个简单的谷歌搜索将产生更快的结果。很高兴我能帮上忙!希望链接能提供更多的清晰度。