调用栈是lifo队列正确吗?

问题描述 投票:0回答:1

我目前正在阅读 Stuart Russel 和 Peter Norvig 撰写的一本关于人工智能的书。他在书中将堆栈称为“后进先出”队列。这是正确还是错误?

上下文(第 3.3.2 节): LIFO 队列或后进先出队列(也称为堆栈)最先弹出 最近添加的节点;我们将看到它用于深度优先搜索。

我搜索了谷歌,但找不到答案。

machine-learning data-structures queue stack artificial-intelligence
1个回答
0
投票

是的。 “堆栈”和“LIFO 队列”是同义词。

但是使用“队列”一词时要小心。

当不带限定形容词使用时,它几乎总是意味着“先进先出队列”。因此,“堆栈”表示 LIFO 队列,而“队列”单独表示 FIFO 队列。这有点像人们说“牛奶”:“羊奶”是羊奶,但“牛奶”本身始终是牛奶。

还有一些其他结构称为队列:“优先级队列”(最常实现为堆,尽管其他实现也是可能的)和“双端队列”(这是一个列表,您可以随时在其中选择哪个队列)侧推或弹出)。

但是当人们说“队列”而不更具体时,他们几乎总是指 FIFO 队列。

© www.soinside.com 2019 - 2024. All rights reserved.