public Boolean Consulta(int elementoA, int elementoB) { elementos[0].setCor(VISITADO); // Q é a lista que contém os vértices que serão verificados. São os vértices que são "Alcançados" pelo elementoA Q = new List <Elemento>(); AdicionaElemento(Q, elementos[0]); for (int v = 0; v < elementos.Count; v++) { if (elementos[v].getNumero().Equals(elementoA)) { while (Q.Count != 0) { // Pega e remove o primeiro elemento de Q Elemento u = RemoveElementoDeQ(); // pega as conexões existentes em Q List <Elemento> conexoesLista = u.getConexoes(); for (int a = 0; a < conexoesLista.Count; a++) { if (conexoesLista[a].getNumero().Equals(elementoB)) { // Se houver uma conexão direta ou indireta retorna true return(true); } // Verifica se o o elemento já foi verificado if (NAO_VISITADO.Equals(conexoesLista[a].getCor())) { AdicionaElemento(Q, conexoesLista[a]); conexoesLista[a].setCor(VISITADO); } } u.setCor(VISITADO_NOS); } break; } } return(false); }