Visited set cần thiết khi graph có cycle hoặc khi một node có thể được đi tới từ nhiều đường khác nhau.
- Nếu không đánh dấu, DFS/BFS có thể lặp vô hạn hoặc xử lý trùng node làm sai kết quả.
- Với BFS, thường nên đánh dấu visited ngay khi enqueue, không đợi dequeue, để tránh cùng một node bị enqueue nhiều lần từ các neighbor khác nhau.
- Với DFS recursion, đánh dấu khi bắt đầu vào node.
- Một số bài cần thêm trạng thái
visiting/visitedthay vì boolean, ví dụ phát hiện cycle trong directed graph hoặc topological sort.