From 29f0aefa70c1ee88443e6088adda824c4f5c9648 Mon Sep 17 00:00:00 2001 From: ITCharge Date: Fri, 5 May 2023 17:03:24 +0800 Subject: [PATCH] Update 05.Graph-Topological-Sorting.md --- .../02.Graph-Traversal/05.Graph-Topological-Sorting.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Contents/08.Graph/02.Graph-Traversal/05.Graph-Topological-Sorting.md b/Contents/08.Graph/02.Graph-Traversal/05.Graph-Topological-Sorting.md index 3ef7a3c2..ddd5396f 100644 --- a/Contents/08.Graph/02.Graph-Traversal/05.Graph-Topological-Sorting.md +++ b/Contents/08.Graph/02.Graph-Traversal/05.Graph-Topological-Sorting.md @@ -15,6 +15,10 @@ ### 2.1 Kahn 算法 > **Kahn 算法的基本思想**: +> +> 1. 不断找寻有向图中入度为 $0$ 的顶点,将其输出。 +> 2. 然后删除入度为 $0$ 的顶点和从该顶点出发的有向边。 +> 3. 重复上述操作直到图为空,或者找不到入度为 $0$ 的节点为止。 #### 2.1.1 Kahn 算法的实现步骤 @@ -71,9 +75,8 @@ class Solution: > **基于 DFS 实现拓扑排序算法的基本思想**: > -> 1. 对于一个顶点 $u$,深度游先生遍历从该顶点出发的有向边 $$。如果从该顶点 $u$ 出发的所有相邻顶点 $v$ 都已经搜索完毕,则在搜索回溯到顶点 $u$ 时,$u$ 本身也会编程一个已经搜索完的顶点。 -> 2. 在拓扑排序的序列中,该顶点 $u$ 位于其所有相邻顶点 $v$ 的前面。 -> 3. 这样一来,我们对每个顶点进行回溯时,将其放入栈中,则最终从栈顶到栈底的序列就是一种拓扑排序。 +> 1. 对于一个顶点 $u$,深度优先遍历从该顶点出发的有向边 $$。如果从该顶点 $u$ 出发的所有相邻顶点 $v$ 都已经搜索完毕,则回溯到顶点 $u$ 时,该顶点 $u$ 应该位于其所有相邻顶点 $v$ 的前面(拓扑序列中)。 +> 2. 这样一来,当我们对每个顶点进行深度优先搜索,在回溯到该顶点时将其放入栈中,则最终从栈顶到栈底的序列就是一种拓扑排序。 #### 2.2.1 基于 DFS 实现拓扑排序算法实现步骤