private void dfs() { init(); this.tempo = 0; List<Vertice> vertices = grafo.getVertices(); for (Vertice v : vertices) { if (v.getColor().equals(VerticeColor.WHITE)) { dfsVisit(v); } } }
private void dfsVisit(Vertice u) { u.setColor(VerticeColor.GREY); this.tempo++; u.setInitialTime(this.tempo); if (u.getAdjacentes() != null) { for (Vertice adjacente : u.getAdjacentes()) { if (adjacente.getColor().equals(VerticeColor.WHITE)) { // TODO Verificar sobre vértices pais adjacente.setFather(u); dfsVisit(adjacente); } } } u.setColor(VerticeColor.BLACK); this.tempo++; u.setFinalTime(this.tempo); outVertices.add(u); }