跳到主要内容

图的基本概念

**图(Graph)顶点(Vertex)边(Edge)**组成,用来表达多对多关系:社交网络、道路导航、任务依赖、电路连接都可以抽象成图。

相对树:树是特殊的连通无环图;图可以有环、可以不连通、顶点之间可以任意相连。

本文解决什么问题

  • 有向 / 无向、带权、连通等基本术语
  • 度、路径、环的含义
  • 本章后续各篇学什么

基本分类

概念含义
无向图边无方向,(u,v)(u,v)(v,u)(v,u) 相同
有向图边有方向,uvu \rightarrow v
带权图边带代价(距离、耗时、费用)
简单图无自环、无重边(教材默认常如此)
稀疏 / 稠密边少 / 边接近 n2n^2 量级

常用术语

术语含义
无向图:与顶点相连的边数;有向图分出度 / 入度
路径顶点序列,相邻者有边
起点终点相同的路径(简单环不重复顶点)
连通无向图中任意两点有路径
强连通有向图中任意两点互相可达
连通分量极大连通子图
生成树包含全部顶点的无环连通子图

无向图:边数之和等于度数之和的一半(握手引理)。有向图:所有出度之和 = 所有入度之和 = 边数。

本章地图

文章内容
图的存储结构邻接矩阵 / 邻接表
图的遍历DFS / BFS
最短路径BFS / Dijkstra 等
最小生成树Prim / Kruskal
拓扑排序DAG 上的线性序

建模直觉

把业务对象当顶点、关系当边:

  • fort 之间的道路 → 无向带权图
  • 课程先修 → 有向图,常做拓扑排序
  • 网页链接 → 有向图

先画对图,再选存储与算法,比一上来背模板更重要。

小结

图描述任意连接关系。先分清有向/无向、是否带权、是否连通,再进入存储与遍历。

下一篇:图的存储结构