图的遍历(BFS&&DFS基础)

前言

之前我们讲了图的存储,图最终的目的是进行遍历的,遍历的方式有哪些,我们一一分解。
(图的认识与存储:https://blog.csdn.net/weixin_42178241/article/details/125931691?spm=1001.2014.3001.5501)

图的遍历

解决问题

像解决图论搜索的问题,它是可以向多个点扩散,可我们计算机用的是线性存储,而这种问题是非线性的,我们需要将非线性问题转化成线性。

BFS

广度优先搜索

主要思想

按层次遍历,起始点层次为0,其子节点为1,其孙子节点为2,注意标记过的节点,不在标记

性质

第一次被遍历到的新节点,所对应的层次为从起始点到此节点的最短合法路径

代码思路

  1. 输入
  2. 初始化
  3. 队列不为空执行4 5,空执行6
  4. 将队首元素弹出,如果为终点跳转到6
  5. 扩展新节点执行3
  6. 输出

DFS

深度优先搜索

主要思想

一条路走到黑,按路线依次遍历,走不了回溯到上一个节点。

代码思路

  1. 输入
  2. 初始化
  3. 遍历起始节点
  4. 分别遍历子节点
  5. 节点回溯
  6. 输出

进化

某些题目对方向数组,有些改动,对地图的条件也有很大的更改,解决方案分两种:

  1. 建新节点
  2. 增加维度

总结

BFS

主要特点

队列

解决问题
  1. 同一个点多个线路的最短路径

DFS

主要特点

解决问题
  1. 路径过程
  2. 路径条数

后记

这些知识BFS&&DFS的基础,更难的我们后面再讲。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Yxz_

我只是一名ssfoier

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值