数据结构(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);
        }
}

复杂度分析

空间复杂度

时间复杂度

深度优先遍历练习

深度优先生成树

深度优先生成森林

图的遍历和图的连通性

无向图

有向图

总结:

相关推荐
bubiyoushang88819 分钟前
基于蚁群算法的直流电机PID参数整定 MATLAB 实现
数据结构·算法·matlab
永远睡不够的入1 小时前
直接插入排序、希尔排序、选择排序
数据结构·算法·排序算法
历程里程碑1 小时前
hot 206
java·开发语言·数据结构·c++·python·算法·排序算法
LYFlied3 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)
数据结构·算法·leetcode·动态规划
永远睡不够的入4 小时前
快排(非递归)和归并的实现
数据结构·算法·深度优先
cheems95274 小时前
二叉树深搜算法练习(一)
数据结构·算法
sin_hielo4 小时前
leetcode 3074
数据结构·算法·leetcode
风筝在晴天搁浅4 小时前
hot100 234.回文链表
数据结构·链表
徐子童6 小时前
优选算法---哈希表
数据结构·算法·哈希表
B_lack0266 小时前
字节转换算法应用_读取本地时间
数据结构·算法·数组·西门子plc·博途·时间处理·scl