图的基本算法--深度优先搜索(dfs) 和 广度优先搜索(bfs)
来源:互联网 发布:ubuntu 突然无法上网 编辑:程序博客网 时间:2024/06/05 12:44
# 图# 0# / | \# 1 2 - 4# /# 3m = 999999 # 代表没有连接a = [[0, 1, 1, m, 1], # 邻接矩阵表示图 [1, 0, m, 1, m], [1, m, 0, m, 1], [m, 1, m, 0, m], [1, m, 1, m, 0]]n = 5 # 总点数sm = 0 # 访问点计算book = [0] * n # 记录已经访问过的点def dfs(cur): """ :param cur: 当前访问点 :return: """ global sm print('%d' % cur, end=' ') sm = sm + 1 if sm == n: return for i in range(0, n): if a[cur][i] == 1 and book[i] == 0: book[i] = 1 dfs(i)def dfs_non_recursion(cur): """ :param cur: 当前访问点 :return: """ s = [] s.append(cur) # 栈 book[cur] = 1 while len(s) != 0: cur = s.pop() print('%d' % cur, end=' ') for i in range(n-1, -1, -1): # 为了个递归的打印顺序相同 if a[cur][i] == 1 and book[i] == 0: book[i] = 1 s.append(i)def bfs(cur): """ :param cur: 当前访问点 :return: """ q = [] # 队列 q.append(cur) while len(q) != 0: cur = q.pop(0) print('%d' % cur, end=' ') for i in range(0, n): if a[cur][i] == 1 and book[i] == 0: book[i] = 1 q.append(i)if __name__ == "__main__": book[0] = 1 dfs(0) for i in range(n): book[i] = 0 print() dfs_non_recursion(0) for i in range(n): book[i] = 0 print() book[0] = 1 bfs(0)
阅读全文
0 0
- 图的基本算法--深度优先搜索(dfs) 和 广度优先搜索(bfs)
- 算法: 无向图的深度优先搜索(dfs)和广度优先搜索(bfs)
- 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)
- 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)
- 图的深度(DFS)/广度优先搜索算法(BFS)/Dijkstra
- BFS广度优先搜索 DFS深度优先搜索 回溯算法
- 【数据结构】深度优先搜索BFS和广度优先搜索DFS
- leetcode:深度优先搜索(DFS)和广度优先搜索(BFS)
- 深度优先搜索和广度优先搜索( DFS&BFS )
- 图的深度优先搜索(DFS)和广度优先搜索(BFS)
- 关于图的广度优先搜索(BFS)和深度优先搜索(DFS)
- 图的深度优先搜索DFS和广度优先搜索BFS
- 图的广度优先搜索(BFS)和深度优先搜索(DFS)
- 图的深度优先搜索(DFS)和广度优先搜索(BFS)
- Java实现算法导论中图的广度优先搜索(BFS)和深度优先搜索(DFS)
- <广度优先搜素 BFS>和<深度优先搜索 DFS>
- DFS深度优先搜索算法与BFS广度优先搜索算法的java实现
- 算法——深度优先搜索(DFS)和广度优先搜索(BFS)
- 你的朋友国庆假期都去了哪里玩?微信大数据告诉你!最远的朋友圈签到竟然来自……
- Opencv 中 Mat中元素的值读取方法总结
- MD5
- OFBiz登录权限设置
- linux 学习系列-Linux 文件基本属性
- 图的基本算法--深度优先搜索(dfs) 和 广度优先搜索(bfs)
- HihoCoder
- Java线程面试题 Top 50 (转载)
- Django中的模版文件--index.html(判断用户是否已经登录)
- vue 中import和export如何一起使用
- MongoDB运行状态、性能监控,分析
- 关于python 的函数默认参数与关键字keyword的想法
- 在OpenCV环境下对图像做Gamma校正
- tensorflow 复合逻辑‘且’和‘或’的实现