DFS算法原理及其模板

DFS------深度优先遍历,与BFS有极大的相似性,代码模板也是如此,我们这里给出BFS的讲解回来再看DFS就简单的多了,而且DFS代码写起来比BFS更简洁。

BFS算法讲解https://blog.csdn.net/czt230610/article/details/151409412?fromshare=blogdetail&sharetype=blogdetail&sharerId=151409412&sharerefer=PC&sharesource=czt230610&sharefrom=from_link与BFS不同的是,DFS是在某一点处采取一条路走到黑直到不能走下去再返回,而BFS是到某一点时先把该的周围走一遍然后以这些点为起点重复此操作。此外,DFS用到了递归思想(可以借助二叉树遍历思想理解)

这里直接给出DFS模板

cpp 复制代码
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
void dfs(...,int i,int j)//...通常为题目给出的矩阵等结构
{
   
       ...[i][j]=... //遍历后的标记/修改
    
      for(int k=0;k<4;k++)
       {
         int x=i+dx[k],y=j+dy[k];
         if(x>=0&&x<m&&y>=0&&y<n&&...[x][y]==...//满足的条件)//m,n为数组的长度宽度
         {
            bfs(...,x,y);
         }
       }
     
  
}
相关推荐
ysa05103011 小时前
虚拟位置映射(标签鸽
数据结构·c++·笔记·算法
Yue丶越11 小时前
【C语言】深入理解指针(二)
c语言·开发语言·数据结构·算法·排序算法
m0_7482480212 小时前
C++中的位运算符:与、或、异或详解
java·c++·算法
沐浴露z12 小时前
详解【限流算法】:令牌桶、漏桶、计算器算法及Java实现
java·算法·限流算法
王哈哈^_^12 小时前
【完整源码+数据集】草莓数据集,yolov8草莓成熟度检测数据集 3207 张,草莓成熟度数据集,目标检测草莓识别算法系统实战教程
人工智能·算法·yolo·目标检测·计算机视觉·视觉检测·毕业设计
油泼辣子多加12 小时前
【实战】自然语言处理--长文本分类(3)HAN算法
算法·自然语言处理·分类
Shinom1ya_13 小时前
算法 day 46
数据结构·算法
夏鹏今天学习了吗13 小时前
【LeetCode热题100(64/100)】搜索旋转排序数组
算法·leetcode·职场和发展
2301_7965125214 小时前
Rust编程学习 - 问号运算符会return一个Result 类型,但是如何使用main函数中使用问号运算符
开发语言·学习·算法·rust
小龙报14 小时前
算法通关指南:数据结构和算法篇 --- 队列相关算法题》--- 1. 【模板】队列,2. 机器翻译
c语言·开发语言·数据结构·c++·算法·学习方法·visual studio