我正在尝试实现Tarjan的强连接组件算法但是我遇到了困难,因为psuedo-code(页17)要求我搜索堆栈,但我知道堆栈不提供随机访问工具。我个人认为这不是一个合适的伪代码,因为它们使用了错误的数据结构。你能建议我使用备用伪代码或备用数据结构吗?
答案 0 :(得分:2)
Stack是一个容器适配器,在集线器下(默认情况下)它使用vector
。如果愿意,也可以使用deque
或list
。
这意味着vector
提供了执行堆栈操作所需的所有功能。 vector
使用RandomAccessIterator
这同样适用于deque
。
list
使用BidirectionalIterator
,无法满足您的需求。
我的建议是使用vector
来完成任务。