数据结构图知识点小结

图的遍历:

深度优先:
在这里插入图片描述
在这里插入图片描述
广度优先:
在这里插入图片描述
在这里插入图片描述

最小生成树:

必须满足条件:算法完成后不能存在回路;V个顶点就只有V-1条边;必须包含所有顶点
PS:若生成树成功,一定是连通图。若生成树失败,原图不连通
定义所有顶点为S,每次收录进去的组成集合V,剩下的是集合S-V
一、KRUSKAL算法:
思路:每次都收录权重最小的边进入集合V(这条边不能构成回路)直到收录了所有顶点
PS:这种思路的出发点是边,可以用小顶堆来存储边的权重。
在这里插入图片描述二、PRIM算法:
从第一个点开始,收录到集合V中,看与集合V相连的点,权重最小的收录进去(不能构成回路),注意每次收录的点是与集合V相连的点,这个点可以依赖于集合V中的任何一个结点。
两种算法如下所示:
在这里插入图片描述

拓扑排序:

定义:如果从V 到W有一条有向路径,V一定要排在W前面。
能够进行拓扑排序的一定是有向无环图。
在这里插入图片描述

最短路径

单源无权图的最短路径:
按照递增的顺序依次排列,直到求出从源点到目标点的最短路径;
多源有权图最短路径:
Dijkstra算法:按照递增的顺序依次排列,直到求出源点到目标点的最短路径;
示例如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41557631/article/details/84655360