当前位置: 首页 > news >正文

6.3图的遍历

图的遍历是指从某点出发,按照某种搜索方式沿着边访问图中所有节点

图的遍历算法主要有两种:广度优先,深度优先

都需要辅助数组visited[]来记录节点是否被访问过

6.3.1广度优先搜索

like层次遍历,需要辅助队列

代码实现


#include<stdio.h>
#define maxnum 15
bool visited[maxnum];//定义辅助数组
void BFSTraverse(Graph G) {for (int i = 0; i < G.vexnum; i++){visited[i] = false;}//初始化数组initQueue(Q);//初始化队列for (int i = 0; i < G.vexnum; i++)//从0号顶点开始遍历{if (!visited[i]) {BFS(G,i);//广度优先遍历}}
}
void BFS(Graph G,int i){visit(i);//访问visited[i] = true;//改为tEnQueue(Q,i);//入队while (!isEmpty(Q)) {//判断队列是否为空DeQueue(Q,i);//输出队列第一个元素for ( p = FirstNeghbor(G,i); p >0; p=NextNeighbor(G,i,w)){if (!visited[p]) {visit(p);visited[p] = true;EnQueue(Q, p);}}}}

 广度优先遍历过程

从顶点1出发:12563748

从顶点3出发:34678215

性能分析

邻接表和邻接矩阵空间复杂度

邻接表时间复杂度

邻接矩阵的时间复杂度

广度优先生成树

在广度遍历中可以得到一颗遍历树,为广度优先生成树

邻接矩阵唯一,生成树唯一

邻接表不唯一,生成树不唯一

6.3.2深度优先搜索

belike树的先序遍历

代码实现

#include<stdio.h>
#define maxnum 15
bool visited[maxnum];//定义辅助数组
void DFSTraverse(Graph G) {for (int i = 0; i < G.vexnum; i++){visited[i] = false;}//初始化数组for (int i = 0; i < G.vexnum; i++)//从0号顶点开始遍历{if (!visited[i]) {DFS(G, i);//深度优先遍历}}
}
void DFS(Graph G, int i) {visit(i);//访问visited[i] = true;//改为tfor (p = FirstNeghbor(G, i); p > 0; p = NextNeighbor(G, i, w)){if (!visited[p]) {DFS(G, p);}
}

深度优先遍历过程

从2出发:21563478

从3出发:34762158

性能分析

深度优先生成树和生成森林

非连通图可通过深度优先产生n棵生产树

6.3.3图的遍历与图的连通性

to无向图:调用DFS/BFS的次数=连通分量数

to有向图:强连通分量只调用一次DFS/BFS;

若从起始节点到其他节点都有路径,则只需调用一次

相关文章:

6.3图的遍历

图的遍历是指从某点出发,按照某种搜索方式沿着边访问图中所有节点 图的遍历算法主要有两种:广度优先,深度优先 都需要辅助数组visited[]来记录节点是否被访问过 6.3.1广度优先搜索 like层次遍历,需要辅助队列 代码实现 #include<stdio.h> #define maxnum 15 bool vi…...

2024数学建模国赛选题建议+团队助攻资料(已更新完毕)

目录 一、题目特点和选题建议 二、模型选择 1、评价模型 2、预测模型 3、分类模型 4、优化模型 5、统计分析模型 三、white学长团队助攻资料 1、助攻代码 2、成品论文PDF版 3、成品论文word版 9月5日晚18&#xff1a;00就要公布题目了&#xff0c;根据历年竞赛题目…...

大学课程-人机交互期末复习

绪论 什么是人机交互技术&#xff1f;⭐⭐ 是指关于设计、评价和实现供人们使用的交互式计算机系统&#xff0c;并围绕相关的主要现象进行研究的学。狭 义的讲&#xff0c;人机交互技术主要是研究人与计算机之间的信息交换&#xff0c;它主要包括人到计算机和计算机到人的 信息…...

畅游5G高速网络:联发科集成Wi-Fi6E与蓝牙5.2的系统级单芯片MT7922

这周末,除非外面下钞票,否则谁也拦不住我玩《黑神话悟空》(附:两款可以玩转悟空的显卡推荐) IPBrain平台君 集成电路大数据平台 2024年09月03日 17:28 北京 联发科一直以创新技术追赶市场需求…… “不努力向前游就会被海浪拍回岸边…” 芯片设计公司产品层出不穷,想要站…...

SpringSecurity原理解析(一)

一、SpringSecurity 核心组件 在SpringSecurity中的jar包有4个&#xff0c;作用分别为&#xff1a; spring-security-coreSpringSecurity的核心jar包&#xff0c;认证和授权的核心代码都在这里面spring-security-config如果使用Spring Security XML名称空间进行配置或Spring S…...

在Ubuntu 20.04上安装Nginx的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Nginx 是世界上最流行的 Web 服务器之一&#xff0c;负责托管互联网上一些最大和流量最高的网站。它是一个轻量级选择&#xff0c…...

基于苹果Vision Pro的AI NeRF方案:MetalSplatter

随着苹果Vision Pro的发布,混合现实(Mixed Reality, MR)技术迎来了一个新的发展阶段。为了充分利用Vision Pro的潜力,一款名为MetalSplatter的Swift/Metal库应运而生,它允许开发者在Vision Pro上以全立体的方式体验捕捉内容。本文将详细介绍MetalSplatter的特点及其如何为…...

linux系统中,计算两个文件的相对路径

realpath --relative-to/home/itheima/smartnic/smartinc/blocks/ruby/seanet_diamond/tb/parser/test_parser_top /home/itheima/smartnic/smartinc/corundum/fpga/lib/eth/lib/axis/rtl/axis_fifo.v 检验方式就是直接在当前路径下&#xff0c;把输出的路径复制一份&#xff0…...

[数据集][目标检测]抽烟检测数据集VOC+YOLO格式22559张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;22559 标注数量(xml文件个数)&#xff1a;22559 标注数量(txt文件个数)&#xff1a;22559 标…...

C和指针:结构体(struct)和联合(union)

结构体和联合 结构体 结构体包含一些数据成员&#xff0c;每个成员可能具有不同的类型。 数组的元素长度相同&#xff0c;可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同&#xff0c;所以不能用下标来访问它们。成员有自己的名字&#xff0c;可以通过名字访问…...

[数据集][目标检测]电动车头盔佩戴检测数据集VOC+YOLO格式4235张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4235 标注数量(xml文件个数)&#xff1a;4235 标注数量(txt文件个数)&#xff1a;4235 标注…...

软件工程知识点总结(2):需求分析(一)——用例建模

1 软件项目开发流程&#xff1a; 需求分析→概要设计→详细设计→编码实施→测试→产品提 交→维护 2 系统必须做什么&#xff1f; 获取用户需求&#xff0c;从用户角度考虑&#xff0c;用户需要系统必须完成哪些工作&#xff0c;也就是对目 标系统提出完整、准确、清晰、具体…...

2024 年高教社杯全国大学生数学建模竞赛C题—农作物的种植策略(讲解+代码+成品论文助攻,均已更新完毕)

2024数学建模国赛选题建议团队助攻资料-CSDN博客文章浏览阅读1k次&#xff0c;点赞20次&#xff0c;收藏24次。通过分析5个题目的特点&#xff0c;可知数学建模常用的模型大概可以分为五大类——https://blog.csdn.net/qq_41489047/article/details/141925859 本次国赛white学长…...

?.操作符是什么

?.操作符在不同的编程语言和上下文中可能有不同的含义和用途&#xff0c;但一般来说&#xff0c;它并不是一个广泛存在于所有编程语言中的标准操作符。不过&#xff0c;基于一些编程语言的特性和习惯&#xff0c;我们可以对?.操作符进行一些推测和解释。 1. 可选链操作符&am…...

ArcGIS出图格网小数位数设置

1、比如要去掉格网后面的小数点&#xff0c;如何设置呢&#xff1f; 2、如下图设置。...

数学建模_缺失值处理_拉格朗日、牛顿插值(全)

- 缺失值处理 1. 识别缺失值 在处理缺失值之前&#xff0c;首先需要识别数据中的缺失值。 1.1 使用 isna() 和 isnull() Pandas 提供了 isna() 和 isnull() 方法来检测缺失值&#xff0c;二者功能相同。 import pandas as pddf pd.DataFrame({A: [1, 2, None, 4],B: [None, 2,…...

算法题之水壶问题

水壶问题 有两个水壶&#xff0c;容量分别为 x 和 y 升。水的供应是无限的。确定是否有可能使用这两个壶准确得到 target 升。 你可以&#xff1a; 装满任意一个水壶清空任意一个水壶将水从一个水壶倒入另一个水壶&#xff0c;直到接水壶已满&#xff0c;或倒水壶已空。 示…...

Java项目: 基于SpringBoot+mysql蜗牛兼职网兼职平台管理系统(含源码+数据库+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmysql蜗牛兼职网兼职平台管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操…...

C#数组中的Rank,GetUpperBound(), GetLength()

Rank-数组的秩&#xff0c;一维数组的Rank1&#xff1b;二维数组的Rank2&#xff1b; GetUpperBound()--获取每一维的索引的上限&#xff0c; 比如int[4,5], 那么GetUpperBound(0) 3; GetUpperBound(1) 4 ; 所以 对于二维数组来说 GetUpperBound(0)1行数&#xff1b; G…...

Android应用开发项目式教程——序

文章目录 Android技术本书特点本书内容本书参考 Android技术 Android是重要的客户端技术&#xff0c;因其开源开放的特点&#xff0c;Android在其初期就迅速成长为智能手机的主流操作系统&#xff0c;近年来更进一步成为智能电视、智能车载终端等智能设备的主流操作系统&#…...

颠覆式窗口管理:AlwaysOnTop重构多任务处理效率

颠覆式窗口管理&#xff1a;AlwaysOnTop重构多任务处理效率 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 在数字工作空间日益复杂的今天&#xff0c;窗口管理已成为影响多任务…...

Leather Dress Collection实战案例:用Leather TankTop Pants生成运动风皮革穿搭图集

Leather Dress Collection实战案例&#xff1a;用Leather TankTop Pants生成运动风皮革穿搭图集 1. 引言&#xff1a;当皮革遇上运动风 想象一下&#xff0c;你正在为一个运动潮牌设计新一季的视觉素材。客户想要一种既酷炫又充满活力的感觉——皮革的质感&#xff0c;运动的…...

SSM+Vue医院食堂订餐系统源码+论文

代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 分享万套开题报告任务书答辩PPT模板 作者完整代码目录供你选择&#xff1a; 《SpringBoot网站项目》1800套 《SSM网站项目》1500套 《小程序项目》1600套 《APP项目》1500套 《Python网站项目》…...

从生活沟通到AI对话:写好提示词,用好AI的魔法钥匙

一个顿悟&#xff1a;从复杂技术到简单提示最近与一位从事软件开发的朋友交流&#xff0c;他提出了一个颇具启发性的构想&#xff1a;将软件的售后客服工作交给AI来处理。起初&#xff0c;他的思路充满了技术复杂性——计划向AI提供核心代码库、训练一个专属的客服模型、进行深…...

无代码自动化:OpenClaw+Qwen3.5-9B可视化流程搭建

无代码自动化&#xff1a;OpenClawQwen3.5-9B可视化流程搭建 1. 为什么选择OpenClawQwen3.5-9B组合 去年夏天&#xff0c;我发现自己每周要花3小时重复做三件事&#xff1a;整理会议录音、提取待办事项、设置日历提醒。当我尝试用传统自动化工具时&#xff0c;要么需要写代码…...

如何突破Office功能限制?本地化激活方案全解析

如何突破Office功能限制&#xff1f;本地化激活方案全解析 【免费下载链接】ohook An universal Office "activation" hook with main focus of enabling full functionality of subscription editions 项目地址: https://gitcode.com/gh_mirrors/oh/ohook 当…...

忍者像素绘卷多场景应用:微信小程序插图、游戏素材、社交配图一站式生成

忍者像素绘卷多场景应用&#xff1a;微信小程序插图、游戏素材、社交配图一站式生成 1. 像素艺术的新纪元 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;它将传统像素艺术与现代AI技术完美结合。这款工具特别适合需要快速生成高质量像素风格图像…...

ftools架构深度解析:Stata大数据处理的技术革命

ftools架构深度解析&#xff1a;Stata大数据处理的技术革命 【免费下载链接】ftools Fast Stata commands for large datasets 项目地址: https://gitcode.com/gh_mirrors/ft/ftools 在数据科学和经济学研究的实践中&#xff0c;Stata用户经常面临一个共同的挑战&#x…...

从用户视角优化:让QGC地面站的盘旋半径显示更直观的3个实用技巧

从用户视角优化&#xff1a;让QGC地面站的盘旋半径显示更直观的3个实用技巧 在无人机飞行任务规划中&#xff0c;盘旋半径的准确显示直接关系到飞行安全和任务执行效率。QGroundControl&#xff08;QGC&#xff09;作为业界领先的开源地面站软件&#xff0c;其功能强大但某些细…...

利用快马AI一键生成vmware虚拟机下载与配置脚本,快速搭建开发原型环境

今天想和大家分享一个快速搭建开发环境的实用技巧——利用AI工具自动生成VMware虚拟机下载与配置脚本。作为一个经常需要测试不同开发环境的程序员&#xff0c;我发现手动配置虚拟机实在太费时间了&#xff0c;直到尝试了InsCode(快马)平台的AI生成功能&#xff0c;整个过程变得…...