如果这个问题太简单或已经得到解答,我提前道歉。我在 stackoverflow 上找不到任何类似的问题,也无法在网上找到有用的信息。
我目前正在处理堆栈/队列/双端队列。我知道它们的行为方式(后进先出、先进先出,然后双端队列都执行此操作),但我正在努力找出其目的。
- 这 3 个 ADT 可能有什么用途?
- 可以将其中一种替代另一种来获得更好的结果吗?我认为始终使用双端队列是明智的,因为它提供了与队列和堆栈相同的方法 - 我错了吗?
- 性能(如速度)怎么样?使用时有什么需要注意的地方吗?
最佳答案
堆栈/队列是用于各种计算机科学领域(例如操作系统、计算机网络)的基本数据结构。
像后进先出,先进先出等操作根据任务的目的在不同的场合使用,就像在图(另一种数据结构)中一样,而实现BFS使用队列来存储节点,进一步使用像先进先出这样的基本操作。
而且,是的,速度很重要。但是,我们还需要注意内存限制。
附注这些数据结构及其操作可能看起来无关紧要,但随着您进一步学习,您会意识到许多出色的算法都基于这些本身。
关于java - 堆栈、队列、双端队列 - 何时使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29952721/