有向无环图(DAG)介绍
有向无环图(Directed Acyclic Graph, DAG) 是一种特殊的有向图,其核心特点是:
1. 边的方向性:每条边都有明确的方向(如从顶点 A → B,与 B → A 不同)。
2. 无环性:图中不存在任何形式的环路,即无法从某个顶点出发,沿着边最终回到起点。
关键特性
1. 拓扑排序可行性
- DAG 必然存在至少一个拓扑排序,即所有顶点可以排成一个线性序列,使得每条边的起点在终点之前。
- 拓扑排序是 DAG 的核心性质,常用于任务调度、依赖管理等问题。
2. 入度与出度
- 每个 DAG 中必然存在至少一个入度为 0 的顶点(无前置依赖),以及至少一个出度为 0 的顶点(无后续依赖)。
3. 子结构共享
- DAG 可以高效表示具有公共子结构的表达式(如编译原理中的基本块优化)。


