metodo booleano para saber si un grafo es conexo grafos

Technology

header ads

metodo booleano para saber si un grafo es conexo grafos


public boolean esConexo() {
LinkedList listas = new LinkedList();
for (int i = 0; i < vertices.size(); i++) {
Vertice v = vertices.get(i);
if (v.getAristas().size() > 0) {
if (!listas.contains(v)) {
if(listas.size()==0){
esConexo(v, listas);
}else{
esConexo1(v,listas);
}
}
}
}
if (listas.size() != vertices.size())
return false;
return true;
}
private void esConexo(Vertice v, LinkedList lista) {
if (!lista.contains(v)) {
lista.add(v);
}
for (int j = 0; j < v.getAristas().size(); j++) {
Arista a = v.getAristas().get(j);
if (!a.getDestino().equals(v)) {
if (!lista.contains(a.getDestino())) {
esConexo(a.getDestino(), lista);
}
}
}
}
public void esConexo1 (Vertice v, LinkedList lista){
for (int i = 0; i < v.getAristas().size(); i++) {
Arista a = v.getAristas().get(i);
if (lista.contains(a.getDestino())){
esConexo(v,lista);
break;
}
}
}

Post a Comment