algorithm - 如何从堆栈中搜索项目?

标签 algorithm data-structures stack

当我读一些书时,我看到,从堆栈中搜索一个项目的时间复杂度是 O(n)。但我很困惑,我如何从堆栈中搜索一个中间值,因为它是一个后进先出。

最佳答案

堆栈通常实现为数组或链表,您可以遍历其中任何一个。

如果您有一个不提供迭代器的纯堆栈 API:

您必须将元素弹出到不同的堆栈,直到找到该元素,然后将它们推回。

在此之后,我们将使堆栈恢复到原来的状态。

关于algorithm - 如何从堆栈中搜索项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19253169/

相关文章:

c - 确定与等价函数的一对一对应关系的算法

计算范数/内积的C算法

c++ - Trying Favorite Tries : Radix, 后缀,和哈希!甚至三元组,天哪!

algorithm - 如何有效地存储占用/未占用的二维空间(带插入)

c++ - 在 C++ 中如何将一个数据结构中的数据复制到另一个数据结构?

c - 将文本文件转换为 C 中的单链表时,每次插入都会更新 head

Java:在最后一分钟实现 Hit() 和 getNumHits()

java - 堆栈ADT(抽象数据类型)实现-数组与链接

java - 使用 javafx 的基本计算器 : how to reset or restart

compiler-construction - Java - 在没有初始化之前在调试中看不到变量