Stacks,Queue,Deque - 何时使用什么?

时间:2015-04-29 19:22:01

标签: java queue deque

如果这个问题太简单或已经回答,我会提前道歉。我在stackoverflow上找不到任何类似的问题,我也无法在线找到有用的信息。

我目前正在处理stack / queue / deque。我知道他们是如何行动的(LIFO,FIFO,然后deques这两个都做)但我很难找到目的。

  • 这三种ADT可能用于什么?
  • 其中一个可以用于另一个以获得更好的结果吗?我认为总是使用deque会很聪明,因为它提供了与队列和堆栈相同的方法 - 我错了吗?
  • 性能如何(速度如何)?使用它们时需要考虑哪些因素?

1 个答案:

答案 0 :(得分:3)

堆栈/队列是基本数据结构,用于各种计算机科学领域,如操作系统,计算机网络。

LIFO,FIFO等操作根据图形(另一种数据结构)中的任务目的在各种场合使用,而实现BFS则使用队列来存储进一步使用FIFO等基本操作的节点。

而且,速度很重要。但是,我们还需要处理内存限制。

P.S。这些数据结构及其操作可能看似无关紧要,但随着您的进一步研究,您将意识到许多优秀的算法都基于这些。