【发布时间】:2019-05-05 01:53:25
【问题描述】:
哪种数据结构同时支持推送和弹出以及入队/出队操作? push 和 pop 都是堆栈,而 enqueue/dequeue 是队列。现在一个数据结构怎么可能支持所有 4 个。
【问题讨论】:
-
究竟哪个数据结构同时支持??出队??
-
是的,deque 代表双端队列
标签: java data-structures queue
哪种数据结构同时支持推送和弹出以及入队/出队操作? push 和 pop 都是堆栈,而 enqueue/dequeue 是队列。现在一个数据结构怎么可能支持所有 4 个。
【问题讨论】:
标签: java data-structures queue
如果您希望使用不同的数据结构实现上述功能,双向链表将是完美的选择。您可以保留 2 个指针,一个在头部,另一个在尾部。 LIFO 和 FIFO 技术可以用这个来模仿。
【讨论】:
正如文档所述,Deque 可用作 FIFO(先进先出)队列,也可用作 LIFO(后进先出)堆栈。
您正在寻找的队列方法是addFirst(e),它相当于enqueue 和addLast(e),在其他语言中称为dequeue。
它还有push(e) 和pop() 方法。
【讨论】: