图数据结构的全面解析
1. 图的基本概念
图是一种重要的非线性数据结构,在现实生活中有广泛的应用,如航空线路、电路分析、源 - 目的网络、寻找最短路径、程序流程图、统计分析等。
图 (G = (V, E)) 由两个集合定义:
- (V):顶点的集合。
- (E):边的集合。
边的特点:
- 每条边由一对顶点定义。
- 边连接定义它的顶点。
- 某些情况下,顶点可以相同。
顶点的特点:
- 顶点也称为节点。
- 用标签表示顶点。
图的表示:
- 用圆圈表示顶点,圆圈内可包含标签。
- 用圆圈之间的线表示边。
例如,若 (V = {A,B,C,D}),(E = {(A,B),(A,C),(A,D),(B,D),(C,D)}),就构成了一个图。
许多算法使用图来表示数据或待解决的问题,例如城市间的距离、道路交叉点间的距离、课程先决条件、网络、社交网络、程序调用图和变量依赖图等。
2. 图的基本术语
2.1 图的分类
常见的图分类有:
- 加权或无权:
- 加权图:边有权重,权重通常表示遍历的成本,如城市间的距离。
- 无权图:边没有权重,仅表示连接关系,如课程先决条件。
- 有向或无向:
- 无向图:每条边可以在两个方向上遍历,边是无序对,如 ((A,B) = (B,A)),图中边无方向(非箭头)。
- 有向图:每条边只能按指定方向遍历,边是有序对,如 ((A,B)) 和 ((B,A)) 不同