[Enunciado do exercício] Como acontece com muitas funções recursivas, não é fácil dizer, com precisão, o que a função reachR() faz. Começamos com uma documentação um tanto vaga:
/* A função reachR() visita todos os vértices de G que podem ser alcançados a partir de v sem passar por vértices já visitados. */
E agora a documentação completa e precisa da função:
/* A função reachR() recebe um grafo G e um vértice v e tem acesso a um vetor booleano visited[] indexado pelos vértices. Supõe-se que visited[v] == 0. Seja U o conjunto dos vértices u tais que visited[u] == 1. Nesse ambiente, a função reachR() faz visited[x] = 1 para cada vértice x que pode ser alcançado a partir de v por um caminho que não passa por vértices de U. */