Skip to main content

拓扑排序

算法思路

  1. 构造一个队列 Q(queue)Q(queue) 和 拓扑排序的结果队列 T(topological)T(topological)
  2. 把所有没有依赖顶点的节点放入 QQ
  3. 当 Q 还有顶点的时候,执行下面步骤:
    • QQ 中取出一个顶点 nn (将 nnQQ 中删掉),并放入 TT (将 nn 加入到结果集中);
    • nn 每一个邻接点 mm ( nn 是起点,mm 是终点);
      • 去掉边 <n,m><n,m>;
      • 如果 mm 没有依赖顶点,则把 mm 放入 QQ;

注:顶点 A 没有依赖顶点,是指不存在以 A 为终点的边

编程实现