数据结构学习笔记(四)——图

MOOC浙大数据结构课后题记录——PTA数据结构题目集(全) 本博客是为了记录学习数据结构时做的题集,若代码有疏漏欢迎指出! ps:因为已经学过c++了所以就都用c++写了。 阅读详情

五、 图

1. 图的基本概念

1. 图的定义

顶点集V和边集E

  1. 有向图
  2. 无向图
  3. 简单图
  4. 多重图
  5. 完全图(也称简单完全图)
    在无向图中,若任意两个顶点之间都存在边,则称该图为无向完全图。
    在有向图中,若任意两个顶点之间都存在方向相反的两条弧,则称该图为有向完全图。
  6. 子图
  7. 连通、连通图和连通分量
    在无向图中,若从顶点v到顶点w有路径存在,则称v和w是连通的。若图G中任意两个顶点都是连通的,则称图G为连通图,否则称为非连通图。无向图中的极大连通子图称为连通分量。
  8. 强连通图、强连通分量
  9. 生成树、生成森林
  10. 顶点的读、入度和出度
  11. 边的权和网
  12. 稠密图、稀疏图
  13. 路径、路径长度和回路
  14. 简单路径、简单回路
  15. 距离
  16. 有向树

2. 图的存储及基本操作

1. 邻接矩阵法

对于任一有向图,如果他的邻接矩阵中对角线以下(或以上)的元素均为零,则存在拓扑序列(但可能不唯一) 。

2. 邻接表法

3. ★十字链表法

4. ★邻接多重表

5. 图的基本操作

3. 图的遍历

1. 广度优先搜索

  1. BFS算法的性能分析
    无论是邻接表还是邻接矩阵的存储方式,BFS算法都需要借助一个辅助队列Q,n个顶点均需入队一次,在最坏情况下,空间复杂度为O(|V|)。
    采用邻接表存储方式时,每个顶点均需搜索一次(或入队一次),故时间复杂度为O(|V|),在搜索任一顶点的邻接点时,每条边至少访问一次,故时间复杂度为O(|E|),算法总的世界复杂度为O(|V|+|E|) 。采用邻接矩阵存储方式时,查找每个结点的邻接结点所需的时间为O(|V|),故算法总的时间复杂度为O(|V|2)。
  2. BFS算法求解单源最短路径问题
  3. 广度优先生成树

2. 深度优先搜索

  1. DFS算法的性能分析
  2. 深度优先的生成树和生成森林
  3. 图的遍历与图的连通性

4. 图的应用

1. 最小生成树

  1. Prim算法
  2. Kruskal算法

2. 最短路径

求解最短路径的算法通常都依赖于一种性质,即两点之间的最短路径也包含了路径上其他顶点间的最短路径。带权有向图G的最短路径问题一般可分为两类:一是单源最短路径,即求图中某一顶点到其他各顶点的最短路径,可通过经典的Dijkstra算法求解;而是求每对顶点间的最短路径,可通过Floyd-Warshall算法来求解。

  1. Dijkstra算法求单源最短路径问题

  2. Floyd算法求各顶点之间最短路径问题

3. 拓扑排序

4. 关键路径

  1. 事件Vk的最早发生时间Ve(k)
  2. 事件Vk的最迟发生时间Vl(k)
  3. 活动a¬i的最早开始时间e(i)
  4. 活动ai的最迟开始时间l(i)
  5. 一个活动ai的最迟开始时间l(i)和其最早开始时间e(i)的差额d(i)=l(i)-e(i)
考研[*数据结构*]学习笔记汇总(全) 文章目录: 一:预备阶段 二:基础阶段笔记 三:冲刺阶段笔记 四:各章节思维导图 五:题库 一:预备阶段 之前的数据结构笔记 数据结构——学习笔记——入门必看【建议收藏】 数据结构——课堂笔记【上课重点知识截图】 数据结构——考前查漏补缺 数据结构与算法基础——重要知识点截图【青岛大学-王卓版】 二:基础阶段笔记 数据结构理论附加笔记 考研数据结构笔记——第一章 绪论 ... 阅读详情

相关推荐

UDS $27服务DLL文件生成

UDS 27算法 DLL文件生成

hkj8808的博客 1282

数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)

在算法的每一步,我们将一个顶点加入集合S,该顶点是在当前阶段中距离源点s的最短路径长度最小的顶点。Floyd算法也是逐步地求出最短距离的,通过遍历所有可能的中间节点k,并不断尝试更新D[i][j]的值,Floyd算法逐步优化路径长度,最终找到图中所有节点对之间的最短路径。现在,我们引入一个中间节点k,想要通过节点k来尝试找到更短的路径,即尝试在节点i和节点j之间建立一条路径,其中包括节点k。在每一步中,选择的顶点v是当前阶段中距离源点s最近的顶点,而且该距离是经过已确定最短路径顶点集合S的路径长度。

li13437542099的博客 4575

TAS5805MPWPR实战:数字音频功放从选型到量产全流程指南

数字音频功放将I2S数字信号直接转为PWM驱动扬声器,省去传统DAC与模拟运放链路,在高保真、低BOM与紧凑PCB之间找到平衡。其核心在于内置可编程DSP,支持多段PEQ、DRC等数字处理,通过I2C配置即可完成调音,而不占用主控算力。这类方案广泛应用于蓝牙音箱、Soundbar、智能音频模组等产品,但实际落地时常遇到I2C通信不稳定、EQ未生效、底噪超标、DC检测误触发等工程问题。从电源布局、LC滤波参数到PurePath Console工具链的使用,再到量产固件加载与故障排查,都需要系统化方法论支撑。本

weixin_29164843的博客 220

图综合练习--拓扑排序_图的概念那么多,这几个易漏点你都会吗?(内附知识点讲解汇总)...

考点1:图的遍历Q1下列关于广度优先算法的说法中,正确的是( )。I. 当各边的权值相等时,广度优先算法可以解决单源最短路径问题II. 当各边的权值不等时,广度优先算法可用来解决单源最短路径问题II.广度优先遍历算法类似于树中的后序遍历算法IV. 实现图的广度优先算法时,使用的数据结构是队列A、I、IVB、II、II、IVC、II、 IVD、I、II、IV(点击选项查看答案)A1广度优...

weixin_39559382的博客 1005

GNSS - PPP软件 - GAMP 在VS2019/2022下完成调试、跑通程序(超详细!)

WIN32;_DEBUG;_CONSOLE;O_WARNINGS;ENAGLO;ENACMP;ENAGAL;ENAQZS;NFREQ=3。

qq_43381998的博客 8251

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章()介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

汽车ECU自动化测试 1764

数据结构 - 第六章 图

定义 图 (Graph) 是由顶点的有穷非空集合和顶点之间边的集合组成,结点之间存在多对多的关系。通常表示为:G ( V, E )。其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 简单图:不存在顶点到其自身的边,且同一条边不重复出现。 完全图:任意两个顶点之间都存在边。有向图中,要求两个顶点存在互相指向的边。 有向图:两顶点间的边有方向,用<>表示。 无向图...

達某真是滑天下之大稽 912

1.3、云计算HCIP融合存储产品及部署

目标:描述Oceanstor V3系列存储产品系统组成及产品定位 描述Oceanstor V3硬件结构及软件架构 掌握存储系统与主机系统之间的连接 一、存储型号 低端型存储:Oceanstor 2200 2600 2800 V3/V5 终端型存储:Oceanstor 5300 5500 5600 5800 6800 V3/V5 高端型存储:Oceanstor 18000 二、Oceanstor V3系列存储系统定位 OceanStor V3系列存储系统是华为根据存储产品应用现状和存储

weixin_43666279的博客 1655

图论(四)拓扑排序与关键路径

图论(四)拓扑排序与关键路径 文章目录图论(四)拓扑排序与关键路径前言一.拓扑排序二.关键路径 前言 在学了前面三章之后,接下来学习图论中最后的算法:拓扑排序与关键路径算法 首先来了解一些基本概念。 AOV网与AOE网: AOV(activity on vertex) 网:在执行后继节点之前,必须将所有指向后继节点的前驱节点都完成 AOE(activity on edge) 网:在执行后继边的活...

Worthy_Wang的博客 2047

复现Fastjson反序列化漏洞(从dnslog回显到rce再到反弹shell)

Fastjson是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。它还可以用于将JSON字符串转换为等效的Java对象,fastjson爆出多个反序列化远程命令执行漏洞,攻击者可以通过此漏洞远程执行恶意代码来入侵服务器。......

记录并分享学习安全的知识点.. 2697

MIMIC数据库简介

一 、MIMIC简介 MIMIC(Medical Information Mart for Intensive Care),是一个大型的公开数据库。该数据库记录了2001年至2019年期间贝斯以色列女狄肯斯医疗中心重症监护病房患者的相关数据,拥有4万多名患者的医疗健康数据和记录。 MIMIC数据库记录了人口统计学信息,如病人的性别、身高、宗教等情况。记录了实验室检验信息,如血常规,肝功能,肾功能等实验室检测数据。记录了患者的用药信息,如高血压患者服用了治疗高血压类药物等。记录了护理人员以及患者的护理级别等。

越努力 越幸运 1万+

数据结构 第七章(学习笔记四(图的应用))

图的应用最小生成树定义性质算法实现Prim (普里姆)算法算法思路代码实现Kruskal(克鲁斯卡尔)算法算法思路代码实现拓扑排序基本概念算法思想参考代码实现关键路径基本定义基本计算事件Vk的最早发生时间 Ve(k)事件Vk的最迟发生时间 Vl(k)活动ai的最早开始时间e(i)活动ai的最迟开始时间l(i)活动ai的差额d(i) = l(i) - e(i)实例分析最短路径基本定义算法实现迪杰斯特拉(Dijkatra)算法实现思路详细过程参考代码实现弗洛伊德(Floyd)算法实现思路算法思想递推公式参考代码

qq_45876197的博客 1016

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数据结构学习笔记(四) 图之邻接表实现广度优先遍历

以下是用邻接表存储表示,实现图的广度优先遍历的示例。 用于遍历的无向图如下: //v0-v7依次为a-h #include<iostream> #define MaxVertexNum 6 #define MaxSize 7 using namespace std;//抽象数据类型 typedef char vertextype; typedef int datatype; //队列 typed

Clementina_123的博客 4741

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数据结构学习笔记(四) 图之邻接表实现深度优先遍历

一下是使用邻接表存储表示,实现图的深度优先遍历的示例。 用于遍历的有向图如下: #include<iostream> #define MaxVertexNum 6 using namespace std; //抽象数据类型 typedef char vertextype; //边结点类型 typedef struct edge { int mark; int no; st

Clementina_123的博客 3798

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

数据结构学习笔记(四) 图之邻接矩阵实现广度优先遍历

以下是用邻接矩阵存储表示,实现图的广度优先遍历的实例。 用于遍历的无向图如下: //v0-v7依次为字符0-7 #include<iostream> #define MaxVertexNum 8 #define MaxSize 7 using namespace std; //抽象数据类型 typedef char vertextype;//顶点类型 typedef int edgetype;/

Clementina_123的博客 1404

数据结构学习笔记(四) 图之邻接矩阵实现深度优先遍历

以下是用邻接矩阵存储表示,实现图的深度优先遍历的示例。 用于遍历的有向图如下: //递归实现 #include<iostream> #define MaxVertexNum 6 using namespace std; //抽象数据类型 typedef char vertextype;//顶点类型 typedef int edgetype;//边的权值 typedef struct {

Clementina_123的博客 2339

数据结构学习笔记(四) 图之邻接表实现最小生成树prim算法

以下是使用邻接表存储表示的,最小生成树prim算法的应用实例。 用于演示的图如下: #include<iostream> #define MaxVertexNum 6 #define MAXNUM 65535 using namespace std; //抽象数据类型 typedef char vertextype;//顶点类型 //边结点类型 typedef struct edge {

Clementina_123的博客 3822

数据结构学习笔记(四) 图之最小生成树prim算法邻接矩阵实现

以下是使用邻接矩阵存储表示的,最小生成树prim算法应用的实例。 用于演示的图如下: #include<iostream> #define MaxVertexNum 6 #define MAXNUM 65535 using namespace std; //抽象数据类型 typedef char vertextype;//顶点类型 typedef int edgetype;//边的权值 type

Clementina_123的博客 1295

《数据结构、算法与应用 —— C++语言描述》学习笔记 — 图

《数据结构、算法与应用 —— C++语言描述》学习笔记 — 图一、基本概念1、顶点和边2、方向和权3、路径二、特性三、抽象数据类型1、边及迭代器2、图接口四、无权图的描述1、邻接矩阵 一、基本概念 1、顶点和边 图是一个用线或边连接在一起的定点或节点的集合。严格地说,图是有限集V和E的有序对,即G=(V,E)G=(V,E)G=(V,E),其中V的元素称为顶点,E的元素称为边。 每一条边连接两个不同的顶点,而且用元组(i,j)来表示,其中 i 和 j 是边所连接的两个顶点。带方向的边是有向边,不带方向的边叫无

coding-hwz 736

数据结构——图

在AOV网没有回路的前提下,我们将全部活动排列成一个线性序列,使得若AOV网中有弧存在,则在这个序列中,i一定排在j的前面,具有这种性质的线性序列称为拓扑有序序列,相应的拓扑有序排序的算法称为拓扑排序。对有向图构造其顶点的拓扑有序序列,若所有顶点都在序列中则AOV网不存在环,若图中仍有顶点且这些顶点中不再存在无前驱(即不能再进行拓扑排序)的顶点,则AOV网存在环,且这些顶点就是环的组成顶点。hlink:指向下一个弧头;若在图中存在弧(u,Vk),且(V0,u)+(u,Vk)

zzlgogogo的博客 1565

数据结构学习笔记(王道)

数据结构学习笔记(王道) PS:本文章部分内容参考自王道考研数据结构笔记 文章目录数据结构学习笔记(王道)一、绪论1.1. 数据结构1.2. 算法1.2.1. 算法的基本概念1.2.2. 算法的时间复杂度1.2.3. 算法的空间复杂度二、线性表2.1. 线性表的定义和操作2.1.1. 线性表的基本概念2.1.2. 线性表的基本操作2.2. 顺序表2.2.1. 顺序表的基本概念2.2.2. 顺序表的实现2.2.3. 顺序表的基本操作2.3. 链表2.3.1. 单链表的基本概念2.3.2. 单链表的实现2.3.

qq_55593227的博客 4万+

数据结构学习日记四:图

邻接矩阵、邻接表、图的遍历、最短路径、Dijkstra算法、Floyd算法、最小生成树、Prim算法、Kruskal算法、拓扑排序、关键路径

qq_63494746的博客 216

数据结构学习笔记11——图

数据结构学习笔记11——图1.1图的定义1.2图的逻辑结构应用1.3无向图与有向图1.3.1无向图1.3.2有向图1.4简单图与多重图1.4.1简单图1.4.2多重图1.5度1.5.1无向图的度1.5.2有向图的度1.6 顶点之间的关系1.7连通图与强连通图1.8子图1.9连通分量1.10生成树与生成森林1.11带权图(网)1.12其他特殊图2.1图的存储 - 邻接矩阵法2.1.1邻接矩阵2.1.2 邻接矩阵的性质2.1.3邻接矩阵代码实现2.2邻接表法2.2.1邻接表邻接表代码实现2.3十字链表2.3.1

Erik_Ying的博客 1937

数据结构学习笔记(考研 笔记 完结 西电)

记得收藏慢慢看!!!很长!!!

zyxxback 1万+
上一篇: 数据结构学习笔记(三)——树与二叉树
下一篇: 数据结构学习笔记(五)——查找
Undergoer_TW
博客等级 码龄11年 185粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值