1.图的基本概念
(1)有向图、无向图
(2)度数(出度、入度)
(3)简单图:不存在顶点到其自身的边,且同一条边不重复出现 (不含重边和自环)
(4)路径、环、
简单路径:一条路径不包含重复的点和边。
(5)无向完全图:任意两个顶点之间都存在边,有n个顶点的无向完全图有n x (n - 1)/ 2条边
(6)有向完全图:任意两个顶点之间都存在方向互为相反的两条弧,有n个顶点的无向完全图有n x (n - 1)条弧
(7)稀疏图&稠密图:有很少条边或弧的图称为稀疏图,反之称为稠密图,相对的概念。
完全图:任意两个点之间都有连线。
2.图的存储及基本操作
(1)邻接矩阵:适用于稠密图,可存有向图、无向图。常用。空间复杂度: o(n^2)
(2)邻接表:适用于稀疏图,可存有向图、无向图。常用。空间复杂度:o(n + m)
(3)邻接多重表,适用于稀疏图,可存无向图。不常用。空间复杂度:o(n + m)
(4)十字链表,适用于稀疏图,可存有向图、无向图。不常用。空间复杂度:o(n + m)
(5)三元组表,适用于稀疏图,可存有向图,无向图。常用于Bellman-Ford算法、Kruskal算法。空间复杂度: o(m)
3.图的遍历
(1)深度优先搜索。邻接表存储的时间复杂度: o(n + m)。邻接矩阵存储的时间复杂度: o(n^2)
(2)广度优先搜索。邻接表存储的时间复杂度: o(n + m)。邻接矩阵存储的时间复杂度: o(n^2)
4.简单回路、回路
1.回路:起点终点相同
简单通路:起点到终点所经过的边不同
简单回路:起点到终点所经过的边不同+回路
初级通路:起点到终点所经过的顶点各异+简单通路
初级回路/圈:起点到终点所经过的顶点除起点终点相同外,其余顶点各异+简单回路
2.总结:
简单=边不同
初级=边不同+点不同
回路=起终点一致