数据结构_图的遍历

深度优先搜索遍历

遍历思想

在这里插入图片描述

邻接矩阵上的遍历算法

在这里插入图片描述
在这里插入图片描述

void Map::DFSTraverse()
{int i, v;for (i = 0; i < MaxLen; i++){visited[i] = false;}for (i = 0; i < Vexnum; i++){// 如果顶点未访问,则进行深度优先搜索if (visited[i] == false){DFS(i);}}cout << endl;
}// 从第v个顶点出发递归地深度优先遍历图G
void Map::DFS(int v)
{int w, i, k;visited[v] = true; // 标记已访问cout << v << " ";// 找出与v相连接的其他所有顶点,存放在AdjVex数组中int* AdjVex = new int[Vexnum]; // 存放连接的顶点编号for (i = 0; i < Vexnum; i++){AdjVex[i] = -1;}// k是数组AdjVex的空位置下标,初始化为0表示数组AdjVex一开始没有数据k = 0;for (i = 0; i < Vexnum; i++){// 如果顶点i与v连接if (Maxtrix[v][i] == 1){AdjVex[k] = i;k++;}}i = 0;w = AdjVex[i];while (w != -1){// 如果顶点w未访问if (visited[w] == false){DFS(w);}i++;w = AdjVex[i];}delete[] AdjVex;
}

广度优先搜索遍历及其实现

在这里插入图片描述

实现

在这里插入图片描述
在这里插入图片描述

void Map::BFS(Graph G, int v)
{int w, u;queue<int> Q;visited[v] = true; // 访问第v个顶点cout << v << " ";  // 输出访问的顶点Q.push(v);while (!Q.empty()){u = Q.front();Q.pop();for (w = FirstAdjVex(G, u); w >= 0; w = NextAdjVex(G, u, w)){if (!visited[w]){cout << w << " ";visited[w] = true;Q.push(w);}}}
}
int Map::FirstAdjVex(Graph& G, int v)
{for (int i = 0; i < G.num; i++){if (G.arcs[v][i] != 0){return i;}}return -1;
}int Map::NextAdjVex(Graph& G, int v, int w)
{for (int i = w + 1; i < G.num; i++){if (G.arcs[v][i] != 0)return i;}return -1;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/60305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于CVE安全公告号,全面修复麒麟ARM系统OpenSSH漏洞

前言&#xff1a;负责的其中一个从0开始搭建的某生产项目上线前需要做青藤安全扫描&#xff0c;过了后才允许上线&#xff0c;该项目从操作系统、中间件、数据库、容器等全国产信创化&#xff0c;公司公告为CVE安全公告号&#xff0c;而修复漏洞的责任归我&#xff0c;需要根据…

python成绩分级 2024年6月python二级真题 青少年编程电子学会编程等级考试python二级真题解析

目录 python成绩分级 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python成绩分级 2024年6月 python编程等级考试二级编程题 一、题目要求 …

vulnhub靶场-tomato

arp-scan -l用arp-scan探测一下网段内目标靶机的IP arp-scan 是一款轻量级的arp扫描工具&#xff0c;会解析mac地址&#xff0c;就是想 局域网 中所有可能的ip地址发出arp请求包&#xff0c;如果得到arp回应&#xff0c;就证明了局域网中某主机使用了该ip。 nmap扫一下c段 nma…

JavaScript中的执行顺序

分析下面JavaScript代码的执行顺序&#xff1a; <script>setTimeout(() > console.log(代码开始执行), 0)new Promise((resolve, reject) > {console.log(开始for循环);for (let i 0; i < 10000; i) {i 99 && resolve()}}).then(() > console.log(…

【天壤智能-注册安全分析报告-无验证纯IP限制存在误拦截隐患】

前言 由于网站注册入口容易被机器执行自动化程序攻击&#xff0c;存在如下风险&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露&#xff0c;不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 &#xff0c;造成用户无法登陆、注册&#xff0c;大量收到垃圾短信的…

大数据实验4-HBase

一、实验目的 阐述HBase在Hadoop体系结构中的角色&#xff1b;能够掌握HBase的安装和配置方法熟练使用HBase操作常用的Shell命令&#xff1b; 二、实验要求 学习HBase的安装步骤&#xff0c;并掌握HBase的基本操作命令的使用&#xff1b; 三、实验平台 操作系统&#xff1…

内网安全隧道搭建-ngrok-frp-nps-sapp

1.ngrok 建立内网主机与公网跳板机的连接&#xff1a; 内网主机为客户机&#xff1a; 下载客户端执行 2.frp &#xff08;1&#xff09;以下为内网穿透端口转发 frp服务端配置&#xff1a; bindPort 为frp运行端口 服务端运行 ./frps -c frps.ini frp客户端配置&#xf…

三十一、构建完善微服务——API 网关

一、API 网关基础 系统拆分为微服务后&#xff0c;内部的微服务之间是互联互通的&#xff0c;相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能&#xff0c;也采取点对点的方式&#xff0c;则外部系统会非常“头大”。因为在外部系统看来&#xff0c;它不需要也没…

前端:HTML (学习笔记)【1】

一&#xff0c;网络编程的三大基石 1&#xff0c;URL &#xff08;1&#xff09;url —— 统一资源定位符&#xff1a; 网址——整个互联网中可以唯一且准确的确定一个资源的位置。 【项目外】 网址——https://www.baidu.com/ …

实验室管理现代化:Spring Boot技术方案

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

如何在 Microsoft Edge 中设置代理: 快速而简单的方法

你知道在 Microsoft Edge 中设置代理可以大大提升浏览体验吗&#xff1f;无论您是想提高隐私保护、访问受地理位置限制的内容&#xff0c;还是想更高效地浏览网页&#xff0c;代理服务器都能改变一切。 本指南将介绍如何在 Microsoft Edge 中设置代理&#xff0c;解决常见的代…

Excel如何批量导入图片

这篇文章将介绍在Excel中如何根据某列数据&#xff0c;批量的导入与之匹配的图片。 准备工作 如图&#xff0c;我们准备了一张员工信息表以及几张员工的照片 可以看到&#xff0c;照片名称是每个人的名字&#xff0c;与Excel表中的B列&#xff08;姓名&#xff09;对应 的卢易…

【操作系统】操作系统的特征

操作系统的七个基本特征 并发性&#xff08;Concurrence&#xff09; 并发性是指操作系统在同一时间间隔内执行和调度多个程序的能力&#xff0c;提高资源利用率和系统效率。尽管多个任务可能在同一时刻看似同时进行&#xff0c;但实际上&#xff0c;CPU在多个任务之间快速切…

iPhone 17 Air看点汇总:薄至6mm 刷新苹果轻薄纪录

我们姑且将这款iPhone 17序列的超薄SKU称为“iPhone 17 Air”&#xff0c;Jeff Pu在报告中提到&#xff0c;我同意最近关于 iPhone 17超薄机型采用6 毫米厚度超薄设计的传言。 如果这一测量结果被证明是准确的&#xff0c;那么将有几个值得注意的方面。 首先&#xff0c;iPhone…

springboot嗨玩旅游网站

摘 要 嗨玩旅游网站是一个专为旅行爱好者打造的在线平台。我们提供丰富多样的旅游目的地信息&#xff0c;包括景点信息、旅游线路、商品信息、社区信息、活动推广等&#xff0c;帮助用户轻松规划行程。嗨玩旅游网站致力于为用户提供便捷、实用的旅行服务&#xff0c;让每一次旅…

SpringBoot与MongoDB深度整合及应用案例

SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域&#xff0c;NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB&#xff0c;作为一款领先的NoSQL数据库&#xff0c;以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…

潜水打捞系统的功能概率和使用方法_深圳鼎跃

潜水打捞系统是用于帮助打捞沉物&#xff0c;提供足够的浮力支持&#xff0c;确保沉物从水底浮升到水面。它是一种高强度的袋状结构&#xff0c;能够在水下提供调节浮力的功能&#xff0c;广泛应用于水下打捞、海上救援、沉船打捞等领域。 一、功能概述 潜水打捞系统主要功能为…

SpringMVC接收请求参数

&#xff08;5&#xff09;请求参数》五种普通参数 1.普通参数 代码块 RequestMapping("/commonParam") ResponseBody public String commonParam(String name,int age){System.out.println("普通参数传递 name > "name);System.out.println("普通…

CPU 内存加压工具 stress-ng 介绍

01 文章背景介绍 在实车测试时&#xff0c;除了感知算法外&#xff0c;往往还会有别的 APP 在同时运行&#xff0c;从而挤压算法的资源占用&#xff0c;影响模型性能&#xff0c;降低部署效果。因此在项目早期做板端验证的时候&#xff0c;我们就可以使用一些工具对 CPU 和内存…

(C语言)文件操作

目录 文件 程序文件 数据文件 文件名 ​编辑数据文件的分类 文件的打开和关闭 流 标准流 1&#xff09;stdin 2&#xff09;stdout 3&#xff09;stderr 文件指针 文件的打开和关闭 对文件内容操作的函数 1&#xff09;fgetc&#xff0c;fputc 2&#xff09;fp…