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

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)
考研[*数据结构*]学习笔记汇总(全) 文章目录: 一:预备阶段 二:基础阶段笔记 三:冲刺阶段笔记 四:各章节思维导图 五:题库 一:预备阶段 之前的数据结构笔记 数据结构——学习笔记——入门必看【建议收藏】 数据结构——课堂笔记【上课重点知识截图】 数据结构——考前查漏补缺 数据结构与算法基础——重要知识点截图【青岛大学-王卓版】 二:基础阶段笔记 数据结构理论附加笔记 考研数据结构笔记——第一章 绪论 ... 阅读详情

相关推荐

用Seurat和ComplexHeatmap绘制单细胞marker基因热图:从数据处理到可视化全流程

本文详细介绍了使用Seurat和ComplexHeatmap绘制单细胞marker基因热图的全流程,涵盖从数据处理、基因筛选、平均表达矩阵计算到高级可视化与注释添加。重点解析了如何利用ComplexHeatmap生成发表级热图,并整合热词信息,解决单细胞数据可视化中的常见问题,提升科研图表质量。

weixin_29048775的博客 530

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

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

li13437542099的博客 4575

保姆级教程:用Docker一键部署vLLM大模型推理服务(附常见报错解决方案)

本文提供了一份详细的Docker化vLLM大模型推理服务部署指南,涵盖从环境准备到性能调优的全流程。通过容器化技术解决大语言模型部署中的显存利用率、吞吐量等核心问题,并附常见报错解决方案,帮助开发者快速构建高效、可扩展的AI推理服务。

weixin_29248313的博客 494

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

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

weixin_39559382的博客 1005

原形网络(Prototypical Networks)基于PyTorch的实现

我在Jay2coomzz的基础上修改了数据处理方式和evaluation_model()方法,作为初学者若有不当之处恳请大家批评指正,原文链接如下: https://blog.youkuaiyun.com/weixin_38471579/article/details/102631018 数据集和源码链接将放到评论区 文章目录1 数据集一个简单的数据集介绍数据集处理2 搭建网络CNNProtonets 1 数据集 一个简单的数据集介绍 Omniglot数据集一共包含1623 类手写体,每一类中包含20 个样本。其中.

weixin_43872532的博客 6637

Comsol 弧形声学换能器声聚焦仿真

1. 弧度和曲率半径:弧形声学换能器的形状和曲率半径对声聚焦效果有重要影响。通常,较小的曲率半径和较大的弧度可以实现更强的声聚焦效果。弧形声学换能器声聚焦是指将声波能量集中在弧形声学换能器的特定区域内,以实现更强的声场强度和分辨率。4. 数值仿真和优化:使用声学仿真软件进行数值仿真可以帮助设计和优化弧形声学换能器的声聚焦效果。通过调整几何参数、材料特性和激励信号等参数,可以模拟和优化声聚焦效果。2. 激励信号:通过调整激励信号的频率和幅值,可以实现声波在弧形声学换能器中的聚焦效果。

声学黑洞仿真工作室 1618

数据结构 - 第六章 图

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

達某真是滑天下之大稽 912

Python_构建同花顺问财智能选股API服务

本文详细介绍了如何使用Python构建同花顺问财智能选股API服务,涵盖从环境准备、核心API开发到高级功能扩展的全过程。通过Flask框架和pywencai库,开发者可以快速搭建稳定可靠的选股接口,实现自动化股票筛选与交易系统集成,提升量化投资效率。

weixin_30596343的博客 333

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

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

Worthy_Wang的博客 2047

Qt入门教程【数据类型篇】数值类型

Qt中的数值类型

小鱼酱的博客 1万+

2022年全国职业院校技能大赛高职组大数据技术与应用赛项赛卷⑩—解析答案

工业互联网是工业全要素、全产业链、全价值链的全面连接,是人、机、物、工厂互联互通的新型工业生产制造服务体系,是互联网从消费领域向生产领域、从虚拟经济向实体经济拓展的核心载体,是建设现代化经济体系、实现高质量发展和塑造全球产业竞争力的关键支撑。加快发展工业互联网产业,不仅是各国顺应产业发展大势,抢占产业未来制高点的战略选择,也是我国推动制造业质量变革、效率变革和动力变革,实现高质量发展的客观要求。 为完成工业大数据分析工作,你所在的小组将应用大数据技术,以Scala作为整个项目的基础开发语言,基于大数据平台综

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 583

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

图的应用最小生成树定义性质算法实现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

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

以下是用邻接表存储表示,实现图的广度优先遍历的示例。 用于遍历的无向图如下: //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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

Clementina_123的博客 3798

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

以下是用邻接矩阵存储表示,实现图的广度优先遍历的实例。 用于遍历的无向图如下: //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、付费专栏及课程。

余额充值