IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 2022/1/12总结 -> 正文阅读

[数据结构与算法]2022/1/12总结

DFS的学习

DFS的理解就像人处在一个迷宫中一样,需要靠自己一步步地去走,但是,DFS更像是一种走出迷宫的方法,我们在走迷宫的时候可以一直贴着右边的墙壁走,虽然碰到死路会一条路走到底,但是仔细想想,这种方法是可行的,因为我们还能贴着墙走出来,一但发现是死路可以贴着右墙原路返回到最初的岔路口,再选择其他的岔路走下去,虽然看上去荒谬,但是实际上是十分可行的。

例如:

?如图所示,从入口进入后,当碰到岔路口时,我们可以靠着右墙走,如果碰到新的岔路口,继续沿着新的岔路口的右墙走,碰到死路就退回到最近的岔路口再选择另一条岔路口继续。这个过程中,始终是右边优先,且返回的条件取决于是否到达一条死路,这则是“深度”。这样的一种搜索方式被称为深度优先搜索(即DFS)。

那么如何来实现呢,从图中可以很明显的看出

1.第一条路先后访问的结点为ABK,在这时,K到了死路,所以退回到B。

2.接着,从B开始,依次经过CD,D到达死路,返回C,C->E仍然为死路,返回A.

3.同样的,从A开始,选择另一条岔路,到F分岔,到H为死路,再回到F,从F再到G,G分岔,到I又为死路,返回G,从G到J,走出迷宫。

可以看得出来,虽然荒诞,但是这种方法确实可行(突然就掌握了走迷宫的诀窍呢)。

我们再看看,满足就继续,不满足则返回,这与递归是不是有些相似,我们可以从递归的角度来理解DFS(其实栈也是,但是还不熟练,而且从递归的角度来讲更加容易理解)。大家还记得斐波那契数列吧,这是一道经典的递归的题,F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2).当F(n)分为F(n-1)和F(n-2)时,此时的F(n)就是一个岔路口,通过它可以到达F(n-1)和F(n-2)这两个结点,之后在进行F(n-1)和F(n-2)的计算时,又可以将F(n-1)和F(n-2)当成两个新的岔路口继续下去,当访问到F(0)和F(1)时,就为死路,这样来看,递归式为岔路口,递归边界为死路,DFS也好理解一些了。

????????但是正如之前所说,DFS有多种实现的方法,递归只是其中较为便捷的方法而已,总之,DFS还有许多值得去探索和深思的地方,我还得继续加油。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 02:14:08  更:2022-01-14 02:14:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:36:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码