| 1 | Start DFS | 0 | - | -1 | -1 | - | - | No | [] | disc=[-1,-1,-1,-1], low=[-1,-1,-1,-1] |
| 2 | Assign disc & low | 0 | - | 0 | 0 | - | - | No | [] | disc=[0,-1,-1,-1], low=[0,-1,-1,-1] |
| 3 | Visit neighbor | 0 | 1 | 0 | 0 | -1 | -1 | No | [] | disc=[0,-1,-1,-1], low=[0,-1,-1,-1] |
| 4 | DFS on neighbor | 1 | - | -1 | -1 | - | - | No | [] | disc=[0,-1,-1,-1], low=[0,-1,-1,-1] |
| 5 | Assign disc & low | 1 | - | 1 | 1 | - | - | No | [] | disc=[0,1,-1,-1], low=[0,1,-1,-1] |
| 6 | Visit neighbor | 1 | 0 | 1 | 1 | 0 | 0 | No | [] | disc=[0,1,-1,-1], low=[0,1,-1,-1] |
| 7 | Neighbor is parent, skip | 1 | 0 | 1 | 1 | 0 | 0 | No | [] | disc=[0,1,-1,-1], low=[0,1,-1,-1] |
| 8 | Visit neighbor | 1 | 2 | 1 | 1 | -1 | -1 | No | [] | disc=[0,1,-1,-1], low=[0,1,-1,-1] |
| 9 | DFS on neighbor | 2 | - | -1 | -1 | - | - | No | [] | disc=[0,1,-1,-1], low=[0,1,-1,-1] |
| 10 | Assign disc & low | 2 | - | 2 | 2 | - | - | No | [] | disc=[0,1,2,-1], low=[0,1,2,-1] |
| 11 | Visit neighbor | 2 | 1 | 2 | 2 | 1 | 1 | No | [] | disc=[0,1,2,-1], low=[0,1,2,-1] |
| 12 | Neighbor is parent, skip | 2 | 1 | 2 | 2 | 1 | 1 | No | [] | disc=[0,1,2,-1], low=[0,1,2,-1] |
| 13 | Visit neighbor | 2 | 3 | 2 | 2 | -1 | -1 | No | [] | disc=[0,1,2,-1], low=[0,1,2,-1] |
| 14 | DFS on neighbor | 3 | - | -1 | -1 | - | - | No | [] | disc=[0,1,2,-1], low=[0,1,2,-1] |
| 15 | Assign disc & low | 3 | - | 3 | 3 | - | - | No | [] | disc=[0,1,2,3], low=[0,1,2,3] |
| 16 | Visit neighbor | 3 | 2 | 3 | 3 | 2 | 2 | No | [] | disc=[0,1,2,3], low=[0,1,2,3] |
| 17 | Neighbor is parent, skip | 3 | 2 | 3 | 3 | 2 | 2 | No | [] | disc=[0,1,2,3], low=[0,1,2,3] |
| 18 | End DFS on 3 | 3 | - | 3 | 3 | - | - | No | [] | low[3] remains 3 |
| 19 | Return to 2, update low[2] | 2 | 3 | 2 | 2 | 3 | 3 | No | [] | low[2] = min(2, low[3]=3) = 2 |
| 20 | Check bridge 2-3 | 2 | 3 | 2 | 2 | 3 | 3 | Yes | [[2,3]] | low[3] (3) > disc[2] (2), bridge found |
| 21 | Return to 1, update low[1] | 1 | 2 | 1 | 1 | 2 | 2 | No | [[2,3]] | low[1] = min(1, low[2]=2) = 1 |
| 22 | Check bridge 1-2 | 1 | 2 | 1 | 1 | 2 | 2 | Yes | [[2,3],[1,2]] | low[2] (2) > disc[1] (1), bridge found |
| 23 | Return to 0, update low[0] | 0 | 1 | 0 | 0 | 1 | 1 | No | [[2,3],[1,2]] | low[0] = min(0, low[1]=1) = 0 |
| 24 | Check bridge 0-1 | 0 | 1 | 0 | 0 | 1 | 1 | Yes | [[2,3],[1,2],[0,1]] | low[1] (1) > disc[0] (0), bridge found |
| 25 | DFS complete | - | - | - | - | - | - | No | [[2,3],[1,2],[0,1]] | All nodes visited, DFS ends |