图的定义
图的逻辑结构:多对多
图的类型定义
抽象数据类型定义
图的存储结构
图没有顺序存储结构,但可以用数组表示法(邻接矩阵)
表示法:有几个顶点,则生成一个n*n的矩阵,1为有边,为0为无边
无向图邻接矩阵
有向图邻接矩阵
①其矩阵可能是不对称的
②顶点的出度=第i行元素之和
顶点的入度=第i列元素之和
顶点的度=第i行元素之和+第i列元素之和
网(有权图)的邻接矩阵
邻接矩阵的建立
案列:创建无向网
利用到前面的存储结构定义
邻接矩阵的优缺点
优点:1,简单,直观.
2,方便检查顶点间是否存在边
3,方便找任一顶点的所有**邻接点**
4,方便计算任一顶点的“度”(出度(从该点发出的边数),入度(指向该点的边数))
5,无向图:对应行或列非0元素的个数
6,有向图:对应行非0元素的个数是”出度“,对应列非0元素的个数是”入度“
缺点:1,不利于增加和删除
2,浪费空间,大量无效元素
3,浪费时间-统计稀疏图有多少边
链式存储结构: 多重链表 :邻接表,邻接多重表,十字链表
无向图的邻接表
有向图-都是出度边
案列
邻接表的优缺点
优点:1,方便找任一顶点的所有”邻接点“
2,节约稀疏图的空间,
缺点:不方便检查任意顶点间是否存在边
邻接矩阵与邻接表的关系
区别:
图的遍历
遍历实质:找每个顶点的邻接点的过程
深度优先搜索(DFS)
案列
邻接矩阵的深度遍历实现
非连通图的遍历
广度优先搜索(BFS)
不连通图
邻接表的广度优先遍历
使用队列
比较
图的应用
生成树的定义
无向图的生成树
深度和广度生成树
留着蓝色的边,取得无色的边
1,最小生成树(最小代价生成树)
最小生成树的MST性质
其最小权值的边v1-v3,则一定会包括在最小生成树
构造最小生成树的算法-prim算法
蓝色边的路线
拓扑排序
定义:
用于有向无环图:无环的有向图。简称DAG图
AOV网特点:
案列
AOE网
检测是否存在环
图的关键路径
定义:
关键路径-路径长度最长的路径
路径长度:路径上的各活动持续时间之和