• 深度优先遍历与广度优先遍历的区别


    深度优先遍历与广度优先遍历的区别
    https://zhidao.baidu.com/question/119345648/answer/3090369332.html

    一、指代不同

    1、深度优先遍历:是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。

    2、广度优先遍历:系统地展开并检查图中的所有节点,以找寻结果。

    二、特点不同

    1、深度优先遍历:所有的搜索算法从其最终的算法实现上来看,都可以划分成两个部分──控制结构和产生系统。正如前面所说的,搜索算法简而言之就是穷举所有可能情况并找到合适的答案,所以最基本的问题就是罗列出所有可能的情况,这其实就是一种产生式系统。

    2、广度优先遍历:并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。

    ![](https://img2022.cnblogs.com/blog/1192734/202206/1192734-20220606230326036-1816708376.png)

    三、算法不同

    1、深度优先遍历:把根节点压入栈中。每次从栈中弹出一个元素,搜索所有在它下一级的元素,把这些元素压入栈中。并把这个元素记为它下一级元素的前驱。找到所要找的元素时结束程序。如果遍历整个树还没有找到,结束程序。

    2、广度优先遍历:把根节点放到队列的末尾。每次从队列的头部取出一个元素,查看这个元素所有的下一级元素,把它们放到队列的末尾。并把这个元素记为它下一级元素的前驱。找到所要找的元素时结束程序。如果遍历整个树还没有找到,结束程序。

    参考资料来源:百度百科-广度优先遍历

    参考资料来源:百度百科-深度优先遍历

  • 相关阅读:
    GNOME on Arch Linux
    忽然想通不喜欢搞前端的原因
    可以一时气馁,不能放弃
    Hack语言类型化简介
    标榜
    Hack其实是一门好语言
    Focus
    PHP旧系统基于命名空间重构经验
    少即是多的设计
    IDDD 实现领域驱动设计-一个简单的 CQRS 示例
  • 原文地址:https://www.cnblogs.com/sunny3158/p/16350118.html
Copyright © 2020-2023  润新知