O primeiro algoritmo é uma aplicação simples de pesquisa em profundidade: execute uma travessia DFS e observe a ordem em que os vértices se tornam becos sem saída (ou seja, retirados da pilha transversal). Reverter essa ordem produz uma solução para o problema de classificação topológica, desde que, é claro, nenhuma borda traseira tenha sido encontrada durante a travessia. Se uma aresta traseira foi encontrada, o dígrafo não é um dag, e a classificação topológica de seus vértices é impossível.
Quando um vértice v é retirado de uma pilha DFS, nenhum vértice u com uma aresta de u a v pode estar entre os vértices popped off antes v.(Caso contrário, (u, v) teria sido uma aresta traseira.) Portanto, qualquer vértice u será listado após v no popped-popped-stackfora da lista de ordem, e antes v na lista invertida.