【发布时间】:2015-07-09 06:28:05
【问题描述】:
如果这个问题太简单或已经回答,我提前道歉。我在 stackoverflow 上找不到任何类似的问题,也无法在网上找到有用的信息。
我目前正在处理堆栈/队列/双端队列。我知道它们的行为方式(LIFO、FIFO,然后 deques 两者都这样做),但我正在努力找出目的。
- 这 3 个 ADT 可能用于什么?
- 可以将其中一个用于另一个以获得更好的结果吗?我认为总是使用双端队列会很聪明,因为它提供与队列和堆栈相同的方法——我错了吗?
- 性能(如速度)如何?使用时需要注意什么?
【问题讨论】:
-
在最基本的层面(直接使用这些)我不会使用双端队列来代替队列或堆栈。使用其中之一代替堆栈意味着您永远不能依赖它作为堆栈。任何人都可以破坏堆栈的定义,为他们提供危险的功能。