Khi thực hiện một DFS, bất kỳ nút nào cũng thuộc một trong ba trạng thái - trước khi được truy cập, trong khi truy cập đệ quy con cháu của nó và sau khi tất cả các hậu duệ của nó đã được truy cập (trở về cha mẹ của nó, tức là giai đoạn kết thúc). Ba màu tương ứng với mỗi trong ba trạng thái. Một trong những lý do để đề cập đến màu sắc và thời gian truy cập và trở về là để làm rõ ràng những sự khác biệt này để hiểu rõ hơn.
Tất nhiên, có những sử dụng thực tế của những màu sắc này. Hãy xem xét một đồ thị có hướng . Giả sử bạn muốn kiểm tra G cho sự tồn tại của chu kỳ. Trong một đồ thị vô hướng, nếu nút đang xem xét có hàng xóm màu đen hoặc xám, nó chỉ ra một chu kỳ (và DFS không truy cập nó như bạn đã đề cập). Tuy nhiên, trong trường hợp đồ thị có hướng , hàng xóm màu đen không có nghĩa là một chu kỳ. Ví dụ, hãy xem xét một đồ thị với 3 đỉnh - Một , B , và C , với các cạnh đạo như Một → B , B → C , A → C . Giả sử DFS bắt đầu tại AGGA , B ,CA → BB → CA → CMột, Sau đó thăm , sau đó C . Khi nó trở về A , nó sẽ kiểm tra xem C đã được truy cập chưa và có màu đen không. Nhưng không có chu kỳ trong biểu đồ.BCMộtC
Trong biểu đồ có hướng, một chu kỳ có mặt khi và chỉ khi một nút được nhìn thấy lại trước khi tất cả các hậu duệ của nó được truy cập. Nói cách khác, nếu một nút có hàng xóm màu xám, thì có một chu kỳ (và không phải khi hàng xóm có màu đen). Một nút màu xám có nghĩa là chúng ta hiện đang khám phá hậu duệ của nó - và nếu một hậu duệ như vậy có một cạnh với nút màu xám này, thì có một chu kỳ. Vì vậy, để phát hiện chu kỳ trong đồ thị có hướng, bạn cần có 3 màu. Có thể có các ví dụ khác nữa, nhưng bạn nên lấy ý tưởng.