说我想要一个能够尽快得到解决方案的算法,它包括从树中的状态开始,并在树状结构中经历所有可能的状态,为什么首先需要构建一个树,然后遍历它,而不是构建一个树,如果在构建解决方案节点期间,找到停止构建并立即回溯到根,注意到这个叶子的路径?
基本上,是否有一个BF算法来“生成”一个树广度优先,而不是先创建一个树,然后以广度优先的方式搜索它?
有点像动画效果here:
感谢您阅读
答案 0 :(得分:0)
搜索算法没有优势来构建树然后进行搜索,这完全是由于您提到的原因。此外,通过构建树宽度优先或深度优先来获得与搜索相关的优势。
通常,树已经存在,我们使用广度优先方法或深度优先方法遍历它们。我们选择其中一种方法的原因是由于搜索元素或树的属性。
如果您已经看到我们构建树然后搜索它的情况,那么出于教学目的,您必须编写构建树然后遍历它的独立程序。这类似于创建数字的链接列表并执行线性搜索,或构建二进制搜索树然后搜索值。通常,这种方法倾向于教导创建和遍历打包到一个程序中的数据结构。