示例#1
0
 public boolean induzido(Grafo grafo) {
   int cont;
   for (int i = 0; i < vColoridos.size(); i++) {
     int nome = ((Integer) vColoridos.get(i)).intValue();
     ArrayList adja = grafo.getAdjacencias(grafo.getVerticeByNome(nome));
     cont = 0;
     for (int j = 0; j < adja.size(); j++)
       if ((grafo.getAcendedor()).estaAceso((Vertice) adja.get(j))) cont++;
     if (cont != ((ArrayList) aColoridas.get(i)).size()) return false;
   }
   return true;
 }
示例#2
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!";
  }