Пусть задан граф G = (V,E), где V — множество вершин графа, E — множество ребер графа. Предположим, что в начальный момент времени все вершины графа окрашены в белый цвет. Выполним следующие действия: Из множества всех белых вершин выберем любую вершину, обозначим её v1. Выполняем для неё процедуру DFS(v1). Перекрашиваем её в чёрный цвет. Повторяем шаги 1-3 до тех пор, пока множество белых вершин не пусто. Процедура DFS (параметр — вершина u \in V) Перекрашиваем вершину u в серый цвет. Для всякой вершины w, смежной с вершиной u, выполняем следующие два шага: Если вершина w окрашена в белый цвет, выполняем процедуру DFS(w). Окрашиваем w в чёрный цвет.