数据结构

Posted by Static on October 20, 2020

1. 定义

1. 图

图由节点和边构成,图的节点成为顶点,顶点与顶点是多对多的关系,相比于树,树也可以认为是一种特殊的图,节点与节点之间是一对多的关系。

2. 有向图和无向图

边有方向,就是有向图;相反,无方向就是无向图。

无向图:

有向图:

3. 弧

就是边,称为弧,顶点与顶点之间的连线,箭头那头为弧头,另一头是弧尾,记<vi,vj>, 表示顶点i到顶点j的边,无向图中记(vi,vj)

4. 顶点的度、入度和出度

度,顶点的边数;

入度,对于无向图来说是连入的线,对于有向图,弧头连入的线;

出度,对于无向图来说是连出的线,对于有向图,弧尾连出的线;

5. 有向完全图和无向完全图

若有向图有n和顶点,最多有 n(n-1) 条边,将具有 n(n-1) 条边的有向图称为有向完全图;

若无向图有n和顶点,最多有 n(n-1)/2 条边,将具有 n(n-1)/2 条边的无向图称为无向完全图;

6. 路径和路径长度

在一个图中,路径为相邻顶点序偶所构成的序列。

路径长度是指路径上边的数目。

7. 简单路径

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

8. 回路

一条路径中的第一个顶点和最后一个顶点是一个顶点,则这条路径称回路。

9. 连通、连通图和连通分量

无向图中顶点vi到顶点vj有路径,则称vi到vj是连通的。若图中任意两个顶点都连通,称连通图;

图中的极大连通子图称为连通分量。

10. 强连通图和强连通分量

在有向图中,若从vi到vj有路径,则vi和vj是连通的。若对于每一对顶点vi和vj,从vi到vj和vj到vi都有路径,则称该图为强连通图;否则其中的极大强连通子图称为强连通分量。

11. 权和网

图中每条边都可以附有一个对应的数,这种与边相关的数称为权。权可以表示从一个顶点到另一个顶点的距离或花费的代价。边上带有权的图称为带权图,也称


2. 图的存储结构

1. 邻接矩阵

2. 邻接表

3. 邻接多重表


3. 图的遍历

1. 深度优先搜索遍历

1. 广度优先搜索遍历


4. 最小生成树

1. prim(普里姆)算法

2. kruskal(克鲁斯卡尔)算法