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

时间:2016-07-27 04:32:46

标签: data-structures

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

  • O(n)搜索
  • 至少使用数组实现(所有在堆栈而不是堆上)
  • O(1)偷看顶部/前部或后部/底部

如果数组的空间约束是一个问题,你将使用向量实现堆栈或队列,那么为什么有人会使用链接列表实现这些数据结构之一呢?任何现实生活中的例子都很棒,如果与数组/向量实现不同,那么一些基本功能的Big O表示法。

1 个答案:

答案 0 :(得分:3)

对于队列,链接列表在操作队列中间的数据(添加/删除)时会提供更快的结果:O(1)。如果使用数组或向量实现,则它将是O(n),因为您必须移动其他元素以为新元素创建空间,或填充已删除元素的空间。

就堆栈而言,我建议你回答这个问题:Linked list vs. dynamic array for implementing a stack