mirror of
https://github.com/krahets/hello-algo.git
synced 2026-07-18 09:46:08 +00:00
Sort the coding languages by applications. (#721)
This commit is contained in:
@@ -20,10 +20,10 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
|
||||
为了防止重复遍历顶点,我们需要借助一个哈希表 `visited` 来记录哪些节点已被访问。
|
||||
|
||||
=== "Java"
|
||||
=== "Python"
|
||||
|
||||
```java title="graph_bfs.java"
|
||||
[class]{graph_bfs}-[func]{graphBFS}
|
||||
```python title="graph_bfs.py"
|
||||
[class]{}-[func]{graph_bfs}
|
||||
```
|
||||
|
||||
=== "C++"
|
||||
@@ -32,10 +32,16 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "Python"
|
||||
=== "Java"
|
||||
|
||||
```python title="graph_bfs.py"
|
||||
[class]{}-[func]{graph_bfs}
|
||||
```java title="graph_bfs.java"
|
||||
[class]{graph_bfs}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "C#"
|
||||
|
||||
```csharp title="graph_bfs.cs"
|
||||
[class]{graph_bfs}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "Go"
|
||||
@@ -44,6 +50,12 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "Swift"
|
||||
|
||||
```swift title="graph_bfs.swift"
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "JS"
|
||||
|
||||
```javascript title="graph_bfs.js"
|
||||
@@ -56,30 +68,6 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "C"
|
||||
|
||||
```c title="graph_bfs.c"
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "C#"
|
||||
|
||||
```csharp title="graph_bfs.cs"
|
||||
[class]{graph_bfs}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "Swift"
|
||||
|
||||
```swift title="graph_bfs.swift"
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "Zig"
|
||||
|
||||
```zig title="graph_bfs.zig"
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "Dart"
|
||||
|
||||
```dart title="graph_bfs.dart"
|
||||
@@ -92,6 +80,18 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graph_bfs}
|
||||
```
|
||||
|
||||
=== "C"
|
||||
|
||||
```c title="graph_bfs.c"
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
=== "Zig"
|
||||
|
||||
```zig title="graph_bfs.zig"
|
||||
[class]{}-[func]{graphBFS}
|
||||
```
|
||||
|
||||
代码相对抽象,建议对照下图来加深理解。
|
||||
|
||||
=== "<1>"
|
||||
@@ -147,12 +147,12 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
|
||||
这种“走到尽头再返回”的算法范式通常基于递归来实现。与广度优先遍历类似,在深度优先遍历中我们也需要借助一个哈希表 `visited` 来记录已被访问的顶点,以避免重复访问顶点。
|
||||
|
||||
=== "Java"
|
||||
=== "Python"
|
||||
|
||||
```java title="graph_dfs.java"
|
||||
[class]{graph_dfs}-[func]{dfs}
|
||||
```python title="graph_dfs.py"
|
||||
[class]{}-[func]{dfs}
|
||||
|
||||
[class]{graph_dfs}-[func]{graphDFS}
|
||||
[class]{}-[func]{graph_dfs}
|
||||
```
|
||||
|
||||
=== "C++"
|
||||
@@ -163,12 +163,20 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "Python"
|
||||
=== "Java"
|
||||
|
||||
```python title="graph_dfs.py"
|
||||
[class]{}-[func]{dfs}
|
||||
```java title="graph_dfs.java"
|
||||
[class]{graph_dfs}-[func]{dfs}
|
||||
|
||||
[class]{}-[func]{graph_dfs}
|
||||
[class]{graph_dfs}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "C#"
|
||||
|
||||
```csharp title="graph_dfs.cs"
|
||||
[class]{graph_dfs}-[func]{dfs}
|
||||
|
||||
[class]{graph_dfs}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "Go"
|
||||
@@ -179,6 +187,14 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "Swift"
|
||||
|
||||
```swift title="graph_dfs.swift"
|
||||
[class]{}-[func]{dfs}
|
||||
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "JS"
|
||||
|
||||
```javascript title="graph_dfs.js"
|
||||
@@ -195,38 +211,6 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "C"
|
||||
|
||||
```c title="graph_dfs.c"
|
||||
[class]{}-[func]{dfs}
|
||||
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "C#"
|
||||
|
||||
```csharp title="graph_dfs.cs"
|
||||
[class]{graph_dfs}-[func]{dfs}
|
||||
|
||||
[class]{graph_dfs}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "Swift"
|
||||
|
||||
```swift title="graph_dfs.swift"
|
||||
[class]{}-[func]{dfs}
|
||||
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "Zig"
|
||||
|
||||
```zig title="graph_dfs.zig"
|
||||
[class]{}-[func]{dfs}
|
||||
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "Dart"
|
||||
|
||||
```dart title="graph_dfs.dart"
|
||||
@@ -243,6 +227,22 @@ BFS 通常借助队列来实现。队列具有“先入先出”的性质,这
|
||||
[class]{}-[func]{graph_dfs}
|
||||
```
|
||||
|
||||
=== "C"
|
||||
|
||||
```c title="graph_dfs.c"
|
||||
[class]{}-[func]{dfs}
|
||||
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
=== "Zig"
|
||||
|
||||
```zig title="graph_dfs.zig"
|
||||
[class]{}-[func]{dfs}
|
||||
|
||||
[class]{}-[func]{graphDFS}
|
||||
```
|
||||
|
||||
深度优先遍历的算法流程如下图所示。
|
||||
|
||||
- **直虚线代表向下递推**,表示开启了一个新的递归方法来访问新顶点。
|
||||
|
||||
Reference in New Issue
Block a user