java - 堆栈、队列、双端队列 - 何时使用什么?

标签 java queue deque

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

我目前正在处理堆栈/队列/双端队列。我知道它们的行为方式(后进先出、先进先出,然后双端队列都执行此操作),但我正在努力找出其目的。

  • 这 3 个 ADT 可能有什么用途?
  • 可以将其中一种替代另一种来获得更好的结果吗?我认为始终使用双端队列是明智的,因为它提供了与队列和堆栈相同的方法 - 我错了吗?
  • 性能(如速度)怎么样?使用时有什么需要注意的地方吗?

最佳答案

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

像后进先出,先进先出等操作根据任务的目的在不同的场合使用,就像在图(另一种数据结构)中一样,而实现BFS使用队列来存储节点,进一步使用像先进先出这样的基本操作。

而且,是的,速度很重要。但是,我们还需要注意内存限制。

附注这些数据结构及其操作可能看起来无关紧要,但随着您进一步学习,您会意识到许多出色的算法都基于这些本身。

关于java - 堆栈、队列、双端队列 - 何时使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29952721/

相关文章:

python - Python中的有效队列/链表

java - 您可以使用什么来让应用程序能够接收 SMS 消息?

java - 严重 : Servlet. servlet [jsp] 的 service() 引发异常 java.lang.NumberFormatException

c - SDL_Event,队列填充太快

java - 基于 FIFO 的队列实现?

c++ - 队列返回 pair.first 的错误值

c++ - 如何优化这个程序?

java:如何从 Graphics 对象获取 'screen' 尺寸

java - Dockerized Spring Boot 无法在 Raspberry Hyperiot OS + Gitlab CI + Spring Boot 上运行

c - 队列性能明智哪个是更好的实现 - 数组或链表