Trung BìnhDSA iconDSA

Trong bài graph, khi nào cần visited set và nên đánh dấu lúc nào?

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/visited thay vì boolean, ví dụ phát hiện cycle trong directed graph hoặc topological sort.

Xem toàn bộ DSA cùng filter theo level & chủ đề con.

Mở danh sách DSA