Add 2026.07.21 overview and related document
This commit is contained in:
52
notes-and-examples/2026.07.21/depth-first-search.md
Normal file
52
notes-and-examples/2026.07.21/depth-first-search.md
Normal file
@@ -0,0 +1,52 @@
|
||||
## Traversal introduction
|
||||
|
||||
Many algorithms that involve graphs must involve some way to traverse the elements of a graph. The two simplest ways of traversal are depth-first search (DFS) and [breadth-first search (BFS)](https://en.wikipedia.org/wiki/Breadth-first_search). The major difference here is the *order* in which nodes are traversed.
|
||||
|
||||
If we start from vertex 0 in the tree, in what order would you expect depth-first search to traverse the nodes? (There are multiple correct answers!)
|
||||
|
||||
```
|
||||
0
|
||||
/ \
|
||||
1 2
|
||||
/ \
|
||||
3 4
|
||||
```
|
||||
|
||||
Note that a single traversal step checks for already-visited nodes. So, if the path is `0 -> 1 -> 3`, the path cannot become `0 -> 1 -> 3 -> 1`.
|
||||
|
||||
What about starting from vertex 0 in this graph?
|
||||
|
||||
```
|
||||
0 --- 1
|
||||
| |
|
||||
3 --- 2
|
||||
```
|
||||
|
||||
What about this one?
|
||||
|
||||
```
|
||||
0
|
||||
/ \
|
||||
1 5
|
||||
/ \ \
|
||||
2 3 6
|
||||
\ / /
|
||||
4 7
|
||||
\ /
|
||||
8
|
||||
```
|
||||
|
||||
## Formalizing the algorithm
|
||||
|
||||
Based on these examples, can we create a formal algorithm that takes a starting node, producing a valid traversal path for all three graphs?
|
||||
|
||||
An example for this graph:
|
||||
|
||||
```
|
||||
0 --- 1
|
||||
| |
|
||||
3 --- 2
|
||||
```
|
||||
|
||||
- Arguments: starting node `0`
|
||||
- Expected output:
|
||||
Reference in New Issue
Block a user