| 1 | Start DFS at node 0 | 0 | - | [0:-1,1:-1,2:-1,3:-1,4:-1] | [0:-1,1:-1,2:-1,3:-1,4:-1] | [] | Graph: 0--1--2--3--4, All unvisited |
| 2 | Set discovery[0] and low[0] | 0 | - | [0:0,1:-1,2:-1,3:-1,4:-1] | [0:0,1:-1,2:-1,3:-1,4:-1] | [] | Node 0 visited, time=1 |
| 3 | Explore neighbor 1 of 0 | 0 | 1 | [0:0,1:-1,2:-1,3:-1,4:-1] | [0:0,1:-1,2:-1,3:-1,4:-1] | [] | Going deeper from 0 to 1 |
| 4 | Start DFS at node 1 | 1 | - | [0:0,1:-1,2:-1,3:-1,4:-1] | [0:0,1:-1,2:-1,3:-1,4:-1] | [] | Node 1 unvisited |
| 5 | Set discovery[1] and low[1] | 1 | - | [0:0,1:1,2:-1,3:-1,4:-1] | [0:0,1:1,2:-1,3:-1,4:-1] | [] | Node 1 visited, time=2 |
| 6 | Explore neighbor 0 of 1 | 1 | 0 | [0:0,1:1,2:-1,3:-1,4:-1] | [0:0,1:1,2:-1,3:-1,4:-1] | [] | Neighbor 0 is parent, skip |
| 7 | Explore neighbor 2 of 1 | 1 | 2 | [0:0,1:1,2:-1,3:-1,4:-1] | [0:0,1:1,2:-1,3:-1,4:-1] | [] | Going deeper from 1 to 2 |
| 8 | Start DFS at node 2 | 2 | - | [0:0,1:1,2:-1,3:-1,4:-1] | [0:0,1:1,2:-1,3:-1,4:-1] | [] | Node 2 unvisited |
| 9 | Set discovery[2] and low[2] | 2 | - | [0:0,1:1,2:2,3:-1,4:-1] | [0:0,1:1,2:2,3:-1,4:-1] | [] | Node 2 visited, time=3 |
| 10 | Explore neighbor 1 of 2 | 2 | 1 | [0:0,1:1,2:2,3:-1,4:-1] | [0:0,1:1,2:2,3:-1,4:-1] | [] | Neighbor 1 is parent, skip |
| 11 | Explore neighbor 3 of 2 | 2 | 3 | [0:0,1:1,2:2,3:-1,4:-1] | [0:0,1:1,2:2,3:-1,4:-1] | [] | Going deeper from 2 to 3 |
| 12 | Start DFS at node 3 | 3 | - | [0:0,1:1,2:2,3:-1,4:-1] | [0:0,1:1,2:2,3:-1,4:-1] | [] | Node 3 unvisited |
| 13 | Set discovery[3] and low[3] | 3 | - | [0:0,1:1,2:2,3:3,4:-1] | [0:0,1:1,2:2,3:3,4:-1] | [] | Node 3 visited, time=4 |
| 14 | Explore neighbor 2 of 3 | 3 | 2 | [0:0,1:1,2:2,3:3,4:-1] | [0:0,1:1,2:2,3:3,4:-1] | [] | Neighbor 2 is parent, skip |
| 15 | Explore neighbor 4 of 3 | 3 | 4 | [0:0,1:1,2:2,3:3,4:-1] | [0:0,1:1,2:2,3:3,4:-1] | [] | Going deeper from 3 to 4 |
| 16 | Start DFS at node 4 | 4 | - | [0:0,1:1,2:2,3:3,4:-1] | [0:0,1:1,2:2,3:3,4:-1] | [] | Node 4 unvisited |
| 17 | Set discovery[4] and low[4] | 4 | - | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [] | Node 4 visited, time=5 |
| 18 | Explore neighbor 3 of 4 | 4 | 3 | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [] | Neighbor 3 is parent, skip |
| 19 | Return from DFS 4 to 3 | 3 | - | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [] | Update low[3] = min(3,4) = 3 |
| 20 | Check if low[4] > discovery[3] | 3 | 4 | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4]] | Bridge found: edge 3-4 |
| 21 | Return from DFS 3 to 2 | 2 | - | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4]] | Update low[2] = min(2,3) = 2 |
| 22 | Check if low[3] > discovery[2] | 2 | 3 | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4],[2,3]] | Bridge found: edge 2-3 |
| 23 | Return from DFS 2 to 1 | 1 | - | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4],[2,3]] | Update low[1] = min(1,2) = 1 |
| 24 | Check if low[2] > discovery[1] | 1 | 2 | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4],[2,3],[1,2]] | Bridge found: edge 1-2 |
| 25 | Return from DFS 1 to 0 | 0 | - | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4],[2,3],[1,2]] | Update low[0] = min(0,1) = 0 |
| 26 | Check if low[1] > discovery[0] | 0 | 1 | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4],[2,3],[1,2],[0,1]] | Bridge found: edge 0-1 |
| 27 | DFS complete | - | - | [0:0,1:1,2:2,3:3,4:4] | [0:0,1:1,2:2,3:3,4:4] | [[3,4],[2,3],[1,2],[0,1]] | All nodes visited, all edges are bridges |