【问题标题】:Algorithms for Search tree vs building tree搜索树与构建树的算法
【发布时间】:2017-01-17 07:17:00
【问题描述】:

假设我想要一种算法,它可以尽快得到解决方案,它包括从树中的一个状态开始,并遍历树状结构中的所有可能状态,为什么有必要首先构建一棵树,然后遍历它,而不是构建一棵树,并且如果在构建过程中找到了解决方案节点,则停止构建并立即回溯到根,记下此叶子的路径?

基本上,是否有一种 BF 算法来“生成”一棵树的广度优先,而不是先创建一棵树,然后以广度优先的方式搜索它?

有点像动画结果here:

感谢您的阅读

【问题讨论】:

  • 我的印象是,最常见的树搜索方法是在执行过程中隐式构建树,而不是构建整个树然后搜索它。你有其他说法的消息来源吗?
  • 好吧,我的教授说要搜索一棵树,首先需要建立一棵树。现在我对搜索树的含义有冲突
  • 听起来要么(1)他们指的是不同类型的问题,(2)他们指的是存在一棵树的抽象概念,而不是构建它的代码,或者(3 ) 他们错了。由于您确定的原因,在此类搜索问题中预先显式构建树是不常见的。

标签: algorithm tree breadth-first-search


【解决方案1】:

由于您提到的原因,搜索算法构建一棵树然后搜索它没有优势。此外,构建树的广度优先或深度优先并没有获得与搜索相关的优势。

通常,已经存在树,我们使用广度优先方法或深度优先方法遍历它们。我们选择其中一种方法的原因是由于搜索元素或树的属性。

如果您见过我们构建一棵树然后搜索它的情况,这是出于教学目的,您必须编写一个独立的程序来构建树然后遍历它。这类似于创建数字的链表并执行线性搜索,或构造二叉搜索树然后搜索值。通常,这种方法倾向于教授如何创建和遍历打包到一个程序中的数据结构。

【讨论】:

    猜你喜欢
    • 2016-11-06
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2023-03-17
    • 2020-09-03
    • 2015-12-05
    相关资源
    最近更新 更多