Example #1
0
void Dfs::visit(Vertice *vertice) {
    Aresta *aresta; Vertice *verticeAtual;
    vertice->setCor(Qt::gray);
    emit update(grafo);
    sleep(1);
    vertice->setTempoEntrada(tempo++);
    for(aresta = vertice->getArestas(); aresta; aresta = aresta->getProximo()) {
        verticeAtual = grafo->getVertice()[aresta->getIndiceAdj()];
        if(verticeAtual->getCor() == Qt::white) {
            verticeAtual->setPai(vertice);
            visit(verticeAtual);
        }
    }
    vertice->setTempoSaida(tempo++);
    vertice->setCor(Qt::black);
    emit update(grafo);
    sleep(1);
}