数据结构-图

本文深入探讨了图论的基本概念,包括图的定义、存储结构(如邻接矩阵、邻接表等)、遍历方法(深度优先遍历与广度优先遍历),并详细讲解了图论中的关键算法,如最小生成树的普利姆算法和克鲁斯卡尔算法,以及求解最短路径的迪杰斯特拉算法和弗洛伊德算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、基本概念
定义:图 ( Graph ) 是由顶点的有穷非空集合和顶点之间边的集合组成 , 通常表示为: G <V . E>, 其中 . G 表示一个图 , V 是图 G 中顶点的集舍,E 是图 G 中边的集合。
术语:
在这里插入图片描述
2、图的存储结构
2.1、邻接矩阵
图的邻接矩阵 (Adjacency Matrix) 存储方式是用两个数组来表示图。一个一维
数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息
2.2、邻接表
数组与链表相结合的存储方法称为邻接表
2.3、十字链表
邻接表和邻接矩阵结合表示有向图
2.4、邻接多重表
邻接表无向图表示的优化
2.5、边集数组
边集数组是由两个一维数组构成。 一个是存储顶点的信息;另一个是存储边的信息,这个边数组每个数据元素由一条边的起点下标 (begin) 、终点下标 (end) 和权(weigbt) 组成,如图:
在这里插入图片描述
3、图的遍历
3.1、深度优先遍历
深度优先遍历也有称为深度优先搜索,简称为 DFS
3.2、广度优先遍历
广度优先遍历又称为广度优先搜索,简称 BFS
4、最小生成树
我们把构造连通网的最小代价生成树称为最小生成树
示例:不同区域架设电信网络
4.1、普利姆算法
4.2、克鲁斯卡尔算法
5、最短路径
迪杰斯特拉( Dijkstra ) 算法
弗洛伊德( Floyd )算法
6、拓扑排序:其实就是对一个有向图构造拓扑序列的过程拓扑排序算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值