堆栈是一种队列

时间:2016-07-11 09:13:10

标签: data-structures

我最近做过一项任务,其中一个问题是

“证明,堆栈是一种队列”。

我已经在论坛和热门搜索引擎中搜索了这个主题。但是,我无法找到任何相关信息。 堆栈是一种队列真的是真的吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:4)

可以通过以下列方式包装priority queue来实现堆栈。将元素推送到堆栈时,它会将优先级定义为优先级队列中已有的元素数,从而确保它具有最高优先级;弹出一个元素,取一个具有最高优先级的元素。总的来说,这意味着可以将堆栈视为优先级队列的特殊情况。

答案 1 :(得分:1)

<强>栈

堆栈是根据后进先出(LIFO)原则插入和删除的对象的容器。在下推式堆栈中,只允许两个操作:push项目进入堆栈,pop项目进入堆栈。堆栈是一种受限访问的数据结构 - 只能在顶部添加和删除堆栈中的元素。 push将项添加到堆栈顶部,pop从顶部删除项。一个有用的类比是想到一堆书;您只能删除热门图书,也可以在顶部添加新图书。

<强>队列

队列是根据先进先出(FIFO)原则插入和删除的对象(线性集合)的容器。排队的一个很好的例子是加州大学美食广场的一系列学生。对队列后面的一条线进行了新的添加,而在前面发生了移除(或服务)。在队列中,只允许两个操作enqueuedequeue。入队意味着将项目插入队列的后面,出列意味着删除前面的项目。

现在到了你的观点: 通常,您无法删除或插入其间的数据(节点)。该特性适用于数据结构。所以我认为这可能是其中一个原因。