非递归形式的深度优先搜索为何要用栈,而广度优先却使用了队列?

2025-03-09 10:01:00
推荐回答(2个)
回答1:

因为深度优先需要无路可走时按照来路往回退,正好是后进先出
广度优先则需要保证先访问顶点的未访问邻接点先访问,恰好就是先进先出

回答2:

程序每次调用自己时,都要创建一个工作记录,以保持递归调用的返回地址,使用的局部变量,传入的参数等。这些记录被组织成栈的形式。。。。。。我正在研究这个。。。。。