DFS算法(python)
深度优先搜索算法 (英语: Depth-First-Search , DFS )是一种用于遍历或搜索 树 或 图 的 算法 。. 这个算法会尽可能深的搜索树的分支。. 当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。
这个也是我们在数据结构中学过的,我在这也不赘述。不明白原理的可以查一下DFS算法。
我们俗称的不撞南墙不回头。
如上图,我们选择A做第一个,我们得到的是ACEDFB。其实这里的代码跟BFS用到的代码一样,只需要修改一下即可。接下来我们用代码实现。
grap = {"A":["B","C"],"B":["A","C","D"],"C":["A","B","D","E"],"D":["B","C","E","F"],"E":["C","D"],"F":["D"]
}
#存图def DFS(grap,star): #DFS算法stack = [] #定义一个栈seen = set() #建立一个集合,集合就是用来判断该元素是不是已经出现过stack.append(star) #将任一个节点放入seen.add(star) #同上while (len(stack)>0) : #当队列里还有东西时ver = stack.pop() #取出栈顶元素 !!!!这里也就是与BFS的不同notes = grap[ver] #查看grep里面的key,对应的邻接点for i in notes: #遍历邻接点if i not in seen: #如果该邻接点还没出现过stack.append(i) #存入stackseen.add(i) #存入集合print(ver) #打印栈顶元素print(DFS(grap,"A"))
DFS算法(python)相关推荐
- Python BFS和DFS算法
Python BFS和DFS算法 看了b站灯神的视频,整理如下.最后再加上几条实战题. 1.BFS bfs全称是广度优先搜索,任选一个点作为起始点,然后选择和其直接相连的(按顺序展开)走下去.主要用队 ...
- DFS算法模板-排列组合-python
DFS算法模板: def dfs(array or root, cur_layer, path, result):if cur_layer == len(array) or not root:resu ...
- 算法(Python版)|156Kstars|神级项目-(1)The Algorithms - Python简介
文章目录 算法(Python版) 项目地址 项目概况 说明 参与入门 社区频道 算法列表 Arithmetic Analysis 算术分析 Audio Filters 音频过滤器 Backtracki ...
- 八皇后BFS算法、DFS算法、A*算法代码理解
代码参考了Python:DFS/BFS/UCS解决八皇后问题_流动的风与雪的博客-CSDN博客 和Python:GBF/A*算法解决八皇后问题_流动的风与雪的博客-CSDN博客 但是我花了两天时间才看 ...
- UA SIE545 优化理论基础5 搜索与整数规划1 DFS算法
UA SIE545 优化理论基础5 搜索与整数规划1 DFS算法 DFS方法基础 邮票问题 这部分的主要目标是建立求解整数规划的方法,早期解决整数规划需要穷举,后来人们把搜索技术应用到整数规划中,极大 ...
- 棋盘最短路径 python_Dijkstra 最短路径算法 Python 实现
Dijkstra 最短路径算法 Python 实现 问题描述 使用 Dijkstra 算法求图中的任意顶点到其它顶点的最短路径(求出需要经过那些点以及最短距离). 以下图为例: 算法思想 可以使用二维 ...
- 2021-03-15 数据挖掘算法—K-Means算法 Python版本
数据挖掘算法-K-Means算法 Python版本 简介 又叫K-均值算法,是非监督学习中的聚类算法. 基本思想 k-means算法比较简单.在k-means算法中,用cluster来表示簇:容易证明 ...
- 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用
粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...
- 最优化算法python实现篇(4)——无约束多维极值(梯度下降法)
最优化算法python实现篇(4)--无约束多维极值(梯度下降法) 摘要 算法简介 注意事项 算法适用性 python实现 实例运行结果 算法过程可视化 摘要 本文介绍了多维无约束极值优化算法中的梯度 ...
最新文章
- 谨慎使用PHP的引用
- 别再打字聊bug了,GitHub支持“视频留言”!手机也可以的那种
- 计算机网络教室任课教师登记表,多媒体教室工作计划
- Redis 处理客户端连接的一些内部实现机制
- 微课|玩转Python轻松过二级(2.4节):常用内置函数用法精要4
- linux命令 bind,Linux bind命令
- QQ空间 1314学习网的日志 神奇的图片
- 如何在快手批量下载高清不含水印视频
- STM32F072单片机的低功耗实验/STOP模式低功耗调试
- php求闰年的公式,php判断闰年(闰年计算方法)
- 5大国外广告联盟赚美金项目,诱人的美金在向你招手!
- 在光与影中用对白塑造灵魂
- Codeforces1486 C1.Guessing the Greatest (easy version)(交互题+二分)
- matlab x和y不对应,用matlAB求x和y的对应每行的相关系数!比如x中第一行和y中第一行的相关系数!依次的到没行的一个相关系数...
- 又一个阿里离职的 P10 大佬
- NHibernate in Action(第一章1.2)
- Python爬取B站耗子尾汁、不讲武德出处的视频弹幕!
- php explode用法,php中explode函数用法分析
- 移动互联网,一场思维与市场的变革
- 老虎过河编程java_Java编程实例:青蛙过河程序及其解析