Ejemplo n.º 1
0
  public String execAnalise(Grafo grafo) {
    vColoridos = new ArrayList(); // vertices coloridos
    aColoridas = new ArrayList(); // arestas coloridas
    for (int i = 0; i < grafo.getQtdVertices(); i++)
      if ((grafo.getAcendedor()).estaAceso(grafo.getVertice(i)))
        vColoridos.add(new Integer((grafo.getVertice(i)).getNome()));

    if (vColoridos.size() != 0) {
      for (int i = 0; i < vColoridos.size(); i++) {
        Vertice colorido = grafo.getVerticeByNome(((Integer) vColoridos.get(i)).intValue());
        ArrayList adjacencias = grafo.getAdjacencias(colorido);
        ArrayList a = new ArrayList();
        for (int j = 0; j < adjacencias.size(); j++) {
          Vertice V = (Vertice) adjacencias.get(j);
          if (pertenceColoridos(V.getNome()))
            if ((grafo.getAcendedor()).estaAceso(grafo.getArestaEntreVertices(colorido, V)))
              a.add(new Integer(V.getNome()));
        }
        aColoridas.add(a);
      }
      return subgrafo(grafo);
    } else return "Escolha um subgrafo!";
  }