我正在尝试实现 Tarjan 的强连通分量算法,但是我遇到了困难,因为 psuedo-code (第 17 页)要求我搜索堆栈,但我知道堆栈不提供随机访问功能。我个人认为这不是一个合适的伪代码,因为它们使用了错误的数据结构。您能否建议我使用替代伪代码或替代数据结构?
最佳答案
Stack 是一个容器适配器,在集线器下(默认情况下)它使用 vector
。如果愿意,它也可以使用 deque
或 list
。
这意味着vector
提供了执行堆栈操作所需的所有功能。 vector
使用 RandomAccessIterator
。
这同样适用于 deque
。
list
使用 BidirectionalIterator
并且不符合您的需求。
我的建议是使用 vector
来完成您的任务。
关于c++ - 我需要一个类似于堆栈但具有随机访问功能的数据结构,但是我应该实现什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367426/