图论
1.图论的定义
图论 (Graph theory) 是数学的一个分支,图是图论的主要研究对象。图 (Graph) 是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。
2.相关概念
如下图所示:
3.如何存储?
首先你可能会想到引入平面直角坐标系
但是图中的节点是离散的点
所以只能利用节点与节点间的关系
1.邻接矩阵
上图就是一个
其中能表示1 2之间有边
2 3之间有边等
但是这里边只能表示有没有边的关系
即只能表示无向图
2.邻接表
上图就是一个
是利用链表的方式来存储的图
3.链式前向星
当我们使用邻接表来存储的时候,会考虑到不方便存储边权
所以我们使用链式前向星的形式
比如下面的链式前向星
就可以化成下面的形式
4.如何遍历?
深度优先遍历:
遍历方式:
实现方案:
广度优先遍历:
遍历方式:
实现方案:
5.生成树
对连通图进行遍历,过程中经过的点和边可以形成一个普通树
1.最小生成树
生成树中边权和最小的那棵树
2.如何寻找最小生成树?
1.Prim算法
基本思想:不断加点
比如上图,随机选一点a,在a周围,有beg三点,选边权最小的ae遍历
6.单源最短路径
就是给定起点,然后寻找各个点到七点的最短路径
1.寻找方法
1.dijstra算法
和Prim算法相似,把他分已知和未知,慢慢更新
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!