数据结构(6.3_2)——图的深度优先遍历

树的深度优先遍历

树的深度优先遍历分为先根遍历和后根遍历。

图的深度优先遍历

代码(只能遍历连通图)

cpp 复制代码
//深度优先遍历
void DFS(Graph G, int v) {//从顶点v出发,深度优先遍历图G
    visit(v);//访问初始顶点v
    visited[v] = true;//对v做已访问标记
    for (w = FirsitNeighbor(G, v); w >= 0; w = NextNeighbor(G, v, w);)
        //检查v所有邻接点
        if (!visited[w]) {//w为v的尚未访问的邻接点
            DFS(G, w);
        }
}

DFS算法(Final版)

代码

cs 复制代码
void DFSTraverse(Graph G) {//对图G进行深度优先遍历
    for (int v = 0; v < G.vexnum; ++v)
        visited[v] = false;//访问标记数组初始化
    for (int v = 0; v < G.vexnum; ++v)//从0号顶点开始遍历
        if (!visited[v])//对每个连通分量调用一次BFS
            DFS(G, v);//vi未访问过,从vi开始BFS

}
//深度优先遍历
void DFS(Graph G, int v) {//从顶点v出发,深度优先遍历图G
    visit(v);//访问初始顶点v
    visited[v] = true;//对v做已访问标记
    for (w = FirsitNeighbor(G, v); w >= 0; w = NextNeighbor(G, v, w);)
        //检查v所有邻接点
        if (!visited[w]) {//w为v的尚未访问的邻接点
            DFS(G, w);
        }
}

复杂度分析

空间复杂度

时间复杂度

深度优先遍历练习

深度优先生成树

深度优先生成森林

图的遍历和图的连通性

无向图

有向图

总结:

相关推荐
代码中介商4 分钟前
红黑树完全指南:从五条性质到完整插入删除实现
数据结构·算法
Sarvartha2 小时前
单链表的顺序建立与结点的删除(期末题复现)
数据结构
Dlrb12113 小时前
数据结构-链表
数据结构·链表·逻辑结构·单向链表·物理结构·valgrind工具
小的~~3 小时前
算法题:只出现一次的数字
数据结构·算法
一切皆是因缘际会3 小时前
从概率拟合到内生心智:七层投影架构重构AGI数字生命新范式
大数据·数据结构·人工智能·重构·架构·agi
历程里程碑3 小时前
56 . 高效ET非阻塞IO服务器设计指南
java·运维·服务器·开发语言·数据结构·c++·排序算法
南境十里·墨染春水4 小时前
数据结构 —— 顺序表
数据结构
tongluowan0074 小时前
数据结构 Bitmap(位图)示例 - 用户签到系统
开发语言·数据结构·bitmap·用户签到系统
洛水水4 小时前
Redis对象类型与底层数据结构
数据结构·数据库·redis
Hesionberger4 小时前
LeetCode114:二叉树展开为链表(三解法)
数据结构