数据结构学习笔记(VI):图
创始人
2024-02-29 09:09:26

目录

1 图的基本概念

6.1 图的基本概念

1.定义

2.边 

3.连通 

4.子图

5.连通分量  

6. 生成树与森林

7.权

8.特殊的图

2 图的存储

2.1 邻接矩阵法

1.实现

2.性能分析

3.性质

2.2 邻接表法

1.实现

2.对比

2.3 十字链表与邻接多重表

1.十字链表存储有向图

2.邻接多重表存储无向图

2.4 图的基本操作

3 图的遍历

3.1 广度优先遍历(BFS)

1.思路

2.实现

3.分析

3.2 深度优先遍历

1.实现

2.分析

4 最短路径问题

4.1 最小生成树

1.定义

2.Prim算法 

3.Kruskal算法

4.2 BFS算法

4.3 Dijkstra算法

4.4 Floyd算法

4.5 有向无环图描述表达式

1.定义

2.解题方法

4.6 拓扑排序

1.定义

2.实现

3.逆拓扑排序

4.7 关键路径

1.AOE网

2.求关键路径步骤


1 图的基本概念

6.1 图的基本概念

1.定义

2.边 

对于无向图:顶点v的度是指依附于该顶点的边的条数,记为TD(v) 

对于有向图:入度是以顶点v为终点的有向边的数目,记为ID(v);出度是以顶点v为起点的有向边的数目,记为OD(v);顶点v的度等于其入度和出度之和,即TD(v)= ID(v)+OD(v)

路径――顶点vp到顶点vq之间的一条路径是指顶点序列

简单路径――在路径序列中,顶点不重复出现的路径称为简单路径

简单回路――除第一个顶点和最后一个顶点外,其余顶点不重复出现的回路称为简单回路

路径长度――路径上边的数目

点到点的距离――从顶点u出发到顶点v的最短路存若存在,则此路径的长度称为从u到v的距离。若从u到v根本不存在路径,则记该距离为无穷

无向图中,若从顶点v到顶点w有路径存在,则称v和w是连通的

有向图中,若从顶点v到顶点w和从顶点w到顶点v之间都有路径,则称这两个顶点是强连通的

3.连通 

4.子图

5.连通分量  

无向图中的极大连通子图称为连通分量;有向图中的极大强连通子图称为有向图的强连通分量

6. 生成树与森林

连通图的生成树是包含图中全部顶点的一个极小连通子图;在非连通图中,连通分量的生成树构成了非连通图的生成森林。

7.权

边的权――在一个图中,每条边都可以标上具有某种含义的数值,该数值称为该边的权值。

带权图/网――边上带有权值的图称为带权图,也称网。

带权路径长度――当图是带权图时,一条路径上所有边的权值之和!称为该路径的带权路径长度

8.特殊的图

2 图的存储

2.1 邻接矩阵法

1.实现

2.性能分析

3.性质

2.2 邻接表法

1.实现

表示方式不唯一

2.对比

2.3 十字链表与邻接多重表

1.十字链表存储有向图

2.邻接多重表存储无向图

2.4 图的基本操作

3 图的遍历

3.1 广度优先遍历(BFS)

1.思路

2.实现

3.分析

 

 

3.2 深度优先遍历

1.实现

2.分析

 

4 最短路径问题

4.1 最小生成树

1.定义

对于一个带权连通无向图G=(V, E),生成树不同,每棵树的权〈即树中所有边上的权值之和)也可能不同。设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树((Minimum-Spanning-Tree, MST)。

2.Prim算法 

从某一个顶点开始构建生成树;每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止。

3.Kruskal算法

每次选择一条权值最小的边,使这条边的两头连通(原本已经连通的就不选),直到所有结点都连通

4.2 BFS算法

求无权图的单源最短路径

只能用于无权图

4.3 Dijkstra算法

求单源最短路径

第1轮︰循环遍历所有编点,找到还没确定最短路径,且dist最小的顶点Vi,令final[i]=ture。检查所有邻接自Vi的顶点,若其final值为false,则更新dist和path信息。

第2轮:循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点Vi,令final[i]=ture。

第3轮∶循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点Vi,令final[i]=ture。

第4轮︰循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点Vi,令final[i]=ture。

对于负权值带权图,该算法可能失效。

4.4 Floyd算法

各顶点间的最短路径

可以解决带负权值的图,但无法解决带有负权回路的图,因为其可能没有最短路径。

4.5 有向无环图描述表达式

1.定义

若一个有向图中不存在环,则称为有向无环图,简称DAG图(Directed Acyclic Graph)

2.解题方法

4.6 拓扑排序

1.定义

AOV网( Activity on Vertex Network,用顶点表示活动的网):用DAG图(有向无环图)表示一个工程。顶点表示活动,有向边表示活动Vi必须先于活动Vj进行

拓扑排序︰在图论中,由一个有向无环图的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序:每个顶点出现且只出现一次;若顶点A在序列中排在顶点B的前面,则在图中不存在从顶点B到顶点A的路径。

2.实现

①从AOV网中选择一个没有前驱(入度为O)的顶点并输出。②从网中删除该顶点和所有以它为起点的有向边。③重复①和②直到当前的AOV网为空或当前网中不存在无前驱的顶点为止。

3.逆拓扑排序

①从AOV网中选择一个没有后继(出度为0)的顶点并输出。②从网中删除该顶点和所有以它为终点的有向边。③重复①和②直到当前的AOV网为空。

4.7 关键路径

1.AOE网

在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销(如完成活动所需的时间),称之为用边表示活动的网络,简称AOE网(Activity On Edge NetWork)

在AOE网中仅有一个入度为0的顶点,称为开始顶点(源点),它表示整个工程的开始;也仅有一个出度为0的顶点,称为结束顶点(汇点),它表示整个工程的结束。

从源点到汇点的有向路径可能有多条,所有路径中,具有最大路径长度的路径称为关键路径,而把关键路径上的活动称为关键活动

活动a的最早开始时间e(i)——指该活动弧的起点所表示的事件的最早发生时间

活动a的最迟开始时间l(i)——它是指该活动弧的终点所表示事件的最迟发生时间与该活动所需时间之差

2.求关键路径步骤

 

 

 

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...