1. BFS(graph, startNode)
2. let queue = new Queue()
3. let visited = new Set()
4. queue.enqueue(startNode)
5. visited.add(startNode)
6. while (queue is not empty)
7. let node = queue.dequeue()
8. // process node
9. for (neighbor of node.neighbors)
10. if (neighbor not in visited)
11. visited.add(neighbor)
12. queue.enqueue(neighbor)
1. DFS(graph, startNode)
2. let stack = new Stack()
3. let visited = new Set()
4. stack.push(startNode)
5. while (stack is not empty)
6. let node = stack.pop()
7. if (node not in visited)
8. visited.add(node)
9. &spp; // process node
10. for (neighbor of node.neighbors)
11. if (neighbor not in visited)
12. stack.push(neighbor)