当前位置 博文首页 > Linux猿:【C/C++面试必备】bfs和dfs的区别

    Linux猿:【C/C++面试必备】bfs和dfs的区别

    作者:[db:作者] 时间:2021-09-17 09:01


    🎈 作者:Linux猿

    🎈 简介:CSDN博客专家🏆,C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

    🎈 关注专栏:C/C++面试通关集锦?(优质好文持续更新中……)🚀


    目录

    一、什么是 bfs ?

    1.1 搜索方式

    二、什么是 dfs ?

    2.1 搜索方式

    三、bfs 和 dfs 的区别

    3.1?数据结构

    3.2 访问节点的方式

    3.3 应用


    大家对 bfs 和 dfs 应该都有了解,都是很常用的搜索算法,本文结合实例来讲解下这两者的不同。

    一、什么是 bfs ?

    bfs 是 Breadth-First Search 的缩写,称为广度优先搜索,或宽度优先搜索。

    1.1 搜索方式

    步骤 1:从源点出发,访问源点的邻居结点,将邻居节点依次放入队列中,并标记为已访问;

    步骤 2:取出队列中的邻居结点,依次访问每个节点未被访问的邻居节点;

    步骤 3:将邻居节点依次放入队列中,并标记为已访问;

    步骤 4:重复步骤 2~3 直到访问到目标节点或所有节点都标记为已访问。

    来看一个简单的例子,下面是一个无向图:

    图1 无向图
    cs