假设您在运行广度优先搜索时使用堆栈而不是队列。它仍然计算最短路径吗?

时间:2016-11-27 21:01:48

标签: algorithm data-structures breadth-first-search

我可以使用堆栈而不是队列 运行广度优先搜索。它仍然计算最短路径吗?

1 个答案:

答案 0 :(得分:0)

一切皆有可能。

是的,你肯定可以使用 stacks 而不是队列作为广度优先搜索的辅助数据结构。

那就是说,我说的是使用2个堆栈实现队列。有关简短说明,请参阅this答案。

对于每个enqueue和dequeue操作,您可能必须执行一些额外的推送和弹出,这可能会导致简单BFS的复杂代码。

如果您只能使用 1个堆栈,那么您也可以尝试进行深度优先搜索。