| 1 | Start BFS from node 0 | N/A | [0] | {} | [] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 2 | Dequeue node | 0 | [] | {} | [] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 3 | Mark node visited | 0 | [] | {0} | [0] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 4 | Enqueue unvisited neighbors | 0 | [1] | {0} | [0] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 5 | Dequeue node | 1 | [] | {0} | [0] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 6 | Mark node visited | 1 | [] | {0,1} | [0,1] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 7 | Enqueue unvisited neighbors | 1 | [2] | {0,1} | [0,1] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 8 | Dequeue node | 2 | [] | {0,1} | [0,1] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 9 | Mark node visited | 2 | [] | {0,1,2} | [0,1,2] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 10 | Enqueue unvisited neighbors | 2 | [] | {0,1,2} | [0,1,2] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 11 | Queue empty, component complete | N/A | [] | {0,1,2} | [0,1,2] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 12 | Start BFS from next unvisited node 3 | N/A | [3] | {0,1,2} | [] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 13 | Dequeue node | 3 | [] | {0,1,2} | [] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 14 | Mark node visited | 3 | [] | {0,1,2,3} | [3] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 15 | Enqueue unvisited neighbors | 3 | [4] | {0,1,2,3} | [3] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 16 | Dequeue node | 4 | [] | {0,1,2,3} | [3] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 17 | Mark node visited | 4 | [] | {0,1,2,3,4} | [3,4] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 18 | Enqueue unvisited neighbors | 4 | [] | {0,1,2,3,4} | [3,4] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 19 | Queue empty, component complete | N/A | [] | {0,1,2,3,4} | [3,4] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |
| 20 | All nodes visited, done | N/A | [] | {0,1,2,3,4} | [[0,1,2],[3,4]] | {0:[1],1:[0,2],2:[1],3:[4],4:[3]} |