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

devtools/2024/9/23 13:13:13/

 树的深度优先遍历

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

图的深度优先遍历

代码(只能遍历连通图)

 

//深度优先遍历
void DFS(Graph G, int v) {//从顶点v出发,深度优先遍历图Gvisit(v);//访问初始顶点vvisited[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版)

代码

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])//对每个连通分量调用一次BFSDFS(G, v);//vi未访问过,从vi开始BFS}
//深度优先遍历
void DFS(Graph G, int v) {//从顶点v出发,深度优先遍历图Gvisit(v);//访问初始顶点vvisited[v] = true;//对v做已访问标记for (w = FirsitNeighbor(G, v); w >= 0; w = NextNeighbor(G, v, w);)//检查v所有邻接点if (!visited[w]) {//w为v的尚未访问的邻接点DFS(G, w);}
}

复杂度分析

空间复杂度

时间复杂度

深度优先遍历练习 

 

 

深度优先生成树 

 

深度优先生成森林 

 

图的遍历和图的连通性

 无向图

有向图

总结: 


http://www.ppmy.cn/devtools/100141.html

相关文章

深度学习设计模式之策略模式

文章目录 前言一、介绍二、特点三、详细介绍1.核心组成2.代码示例3.优缺点优点缺点 4.使用场景 总结 前言 策略模式定义一系列算法&#xff0c;封装每个算法&#xff0c;并使它们可以互换。 一、介绍 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&…

使用Java进行中小学违规教育培训数据采集实践-以某城市为例

目录 前言 一、违规教育信息 1、内容管理 2、转换后的内容 二、数据库设计 1、空间数据库 三、字符地址位置转换空间信息 1、实现时序图 2、后台实体类的设计与实现 3、数据持久化操作 四、总结 前言 时间来到2024年8月24日&#xff0c;时间过得很快&#xff0c;2024…

ssrf实现.SSH未创建写shell

一、ssrf介绍 SSRF (Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求&#xff0c;由服务端发起请求的安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的&#xff0c;所以服务端能请求到与自身相连而…

Notion使用详解一基础教程

Notion使用详解一基础教程 Notion&#xff0c;这款被誉为“来自未来的笔记协作工具”&#xff0c;自问世以来就凭借其强大的功能和独特的设计理念吸引了众多用户。它不仅集成了笔记、知识库、任务管理等多种功能于一体&#xff0c;还通过模块化设计、无限层级页面以及动态编辑…

WHAT - 远程控制机制

目录 1. 客户端-服务器架构2. 连接建立3. 数据传输4. 通信协议5. 安全性6. 远程控制软件示例7. 操作流程示例 远程控制别人的电脑涉及到技术和安全多个方面。其基本机制通常包括以下几个方面&#xff1a; 1. 客户端-服务器架构 远程控制软件通常采用客户端-服务器架构&#x…

qt-PLC可视化编辑器

qt-PLC可视化编辑器 一、演示效果二、核心代码三、下载链接 一、演示效果 二、核心代码 #include "diagramitem.h" #include "arrow.h"#include <QDebug> #include <QGraphicsScene> #include <QGraphicsSceneContextMenuEvent> #includ…

opencv应用形态学(全网最详细)

引言 在图像处理领域&#xff0c;形态学操作是一种强大的工具&#xff0c;它基于图像的形状和结构来进行处理。形态学开运算是其中一种基础且常用的形态学操作&#xff0c;它主要通过先腐蚀后膨胀的方式&#xff0c;实现去除小物体、平滑较大物体轮廓的效果&#xff0c;同时尽…

【C语言】常见文件操作

文件的常见操作 #include<stdio.h>// 由于devc代码编码为ANCI&#xff0c;故读取的文件中若有中文&#xff0c;请设置文件编码为ANCI&#xff0c;否则会乱码 // 读文件 void test1() {char ch;FILE *fp; // 创建文件指针fp fopen("./file.txt", "r"…