目录
1、Adjacent(G,x,y):判断图G是否存在边或(x,y)。,y>
2、Neighbors(G,x):列出图G中与结点x邻接的边
3、InsertVertex(G,x):在图G中插入顶点x。
4、DeleteVertex(G,x):从图G当中删除顶点x。
5、AddEdge(G,x,y):若无向边(x,y)或有向边不存在,则向图中添加该边。,y>
6、FirstNeighbor(G,x) :求图G中顶点x的第一个邻接点,若有则返回顶点号。若x没有邻接点或图中不存在x,则返回-1。
7、NextNeighbor(G,x,y):假设图G中顶点y是顶点x的一个邻接点,返回除y之外顶点x的下一个邻接点的顶点号,若y是x的最后一个邻接点,则返回-1。
8、Get_edge_value(G,x,y):获取图G当中无向边(x,y)或有向边对应的权值。,y>
Set_edge_value(G,x,y):设置图G当中无向边(x,y)或有向边对应的权值。,y>
一、图的基本概念
知识总览
1、基本概念
2、无向图、有向图
3、简单图、多重图
4、顶点的度、入度、出度
5、顶点-顶点的关系描述
6、连通图、强连通图
7、研究图的局部--子图
生成子图:包含原图的所有顶点
8、连通分量
9、生成树
10、生成森林
11、边的权、带权图/网
12、几种形态特殊的图
13、小结
二、图的存储
知识总览
1、邻接矩阵(空间复杂度 = O(n*n))
性能分析
邻接矩阵法的性质
小结
2、邻接表
小结
3、十字矩阵 和 邻接多重表
1、十字链表法![](https://img-blog.csdnimg.cn/e98e21cce13a4defa770c3ef92403846.png)
2、十字链表法性能分析
3、邻接多重表法
4、小结
三、图的基本操作
知识总览
1、Adjacent(G,x,y):判断图G是否存在边<x,y>或(x,y)。
2、Neighbors(G,x):列出图G中与结点x邻接的边
3、InsertVertex(G,x):在图G中插入顶点x。
4、DeleteVertex(G,x):从图G当中删除顶点x。
5、AddEdge(G,x,y):若无向边(x,y)或有向边<x,y>不存在,则向图中添加该边。
6、FirstNeighbor(G,x) :求图G中顶点x的第一个邻接点,若有则返回顶点号。若x没有邻接点或图中不存在x,则返回-1。
7、NextNeighbor(G,x,y):假设图G中顶点y是顶点x的一个邻接点,返回除y之外顶点x的下一个邻接点的顶点号,若y是x的最后一个邻接点,则返回-1。
8、Get_edge_value(G,x,y):获取图G当中无向边(x,y)或有向边<x,y>对应的权值。
Set_edge_value(G,x,y):设置图G当中无向边(x,y)或有向边<x,y>对应的权值。
10、小结
四、图的遍历
知识总览
1、广度优先遍历(BFS)
代码实现:
遍历序列可变性
代码存在的问题并改进
问题:非连通图,则无法遍历完所有结点
改进方式:判断数组当中时候还有false,有就从false结点开始调用BFS遍历
结论:对于无向图,调用BFS函数的次数 = 连通分量数
复杂度分析
广度优先生成树
广度优先生成森林
练习题小结
2、深度优先遍历(DFS)
知识总览
图的深度优先遍历和树的先根遍历类似![](https://img-blog.csdnimg.cn/1f2d9762ccee44c084bf900116c7d06a.png)
算法存在的问题
解决方案,与广度优先部分的相同
复杂度分析
空间复杂度
时间复 杂度![](https://img-blog.csdnimg.cn/67c2d4efe1354391922e20c60ccb6016.png)
深度优先遍历序列
邻接表的遍历序列不唯一。
邻接矩阵是唯一的。
深度优先生成树
深度优先生成森林
图的遍历和图的连通性
小结![](https://img-blog.csdnimg.cn/c9215eb8e4c841a0a534eb5e48d6efe3.png)
五、图的应用
1、最小生成树![](https://img-blog.csdnimg.cn/50d94856ad794e07b5c978dc513b47e8.png)
(1)Prim算法
(2)Kruskal算法
(3)两种算法的比较
(4)Prim算法的实现思想流程
(5)Kruskal算法的实现思想流程
2、小结
六、最短路径问题
知识概览
1、BFS算法(广度优先算法)
2、Dijkstra算法
以此类推。。。
【注意】负权值下不适用
3、Floyd算法
核心代码
复杂实例
4、小结
七、有向无环图
1、基础及方法
解决方法
2、拓扑排序
AOV网:用顶点表示活动的网
拓扑排序:找到做事的先后顺序
代码实现
3、逆拓扑排序
实现
小结
八、关键路径
注意区别AOV网
小结