深度优先搜索算法
22.7.24 树和图的深度优先遍历
1、树和图的存储
树是一种特殊的图,无环连通图,所以图和树一样的存储。图有两种,分为有向图和无向图。由于bool (a–> b &&a<– b == a – b) = 1,所以,无向图就是一种特殊的有向图,即无向图可以存储为a–> b &&a<– b的有向图。所以只用考虑有向图的处理与存储。
有向图的两种存储方式:
邻接矩阵
用一个二维矩阵来存储
g[a][b]
表示a –> b的一条路无权重为0 or 1的bool值,
有权重为权值
用的比较少,浪费空间,空间复杂度
O(n^2)
,适合稠密的图邻接表
每一个节点都是一个单链表,存储这个点可以走到哪一个点
主要的存储方式
2、树和图的遍历
有深度优先遍历(bfs)和宽度优先遍历(dfs)两种。
dfs模板
1 |
|
22.7.25 dfs 深度优先搜索算法
1、什么是深搜
2、模板 不像bfs不用队列
1 | int h[N],e[N],en[N],idx; //邻接表队列 |
3、要点解释
4、Q&A总结
此文章版权归Macre所有,如有转载,请注明来自原作者