在问题中,无论如何都要使用队列实现DFS并使用堆栈实现BFS? 我无法找到任何相关的讨论。
答案 0 :(得分:0)
你为什么要那样做?在实践中,我认为它不会很好地工作,或者它是否可能,但是如果我认为它会非常低效。为什么?好吧,我们需要用这些算法以某种方式跟踪顶点。让我们使用一个DFS队列,例如,如果您在某个时刻遇到您正在查看的顶点/节点无法访问任何其他节点的情况下运行算法,则需要返回上一个节点,但我们可以不检索队列的某些索引处的元素,除非您将其添加到您的实现,然后使其不是队列。对于具有堆栈的BFS,将发生这种情况,您将不得不在搜索时从堆栈中删除所有元素。那为什么呢?