public interface AlgoritmosEmGrafos {
/**
* Carrega grafo do arquivo texto. O formato será definido do site da disciplina
* @param path
* @return um objeto grafo com as informações representadas no arquivo.
* @throws java.lang.Exception Caminho inválido ou árquivo fora do padrão.
*/
public Grafo carregarGrafo(String path, TipoDeRepresentacao t) throws Exception;
/**
* Verifica se existe ciclo no grafo.
* @param g Grafo.
* @return True, se existe ciclo, False, em caso contrário.
*/
public boolean existeCiclo(Grafo g);
/**
* Retorna (em ordem) as arestas que compoem o caminho mais curto
* entre um par de vértices.
* @param g
* @param origem
* @param destino
* @return As arestas (em ordem) do caminho mais curto.
*/
public ArrayList<Aresta> menorCaminho( Grafo g, Vertice origem, Vertice destino );
/**
* Arestas de arvore.
* @param g
* @return As arestas de arvore do grafo g.
*/
public Collection<Aresta> arestasDeArvore(Grafo g);
/**
* Arestas de retorno.
* @param g
* @return As arestas de retorno do grafo g.
*/
public Collection<Aresta> arestasDeRetorno(Grafo g);
/**
* Arestas de avanço.
* @param g
* @return As arestas de avanço do grafo g.
*/
public Collection<Aresta> arestasDeAvanco(Grafo g);
/**
* Arestas de cruzamento.
* @param g
* @return As arestas de cruzamento do grafo g.
*/
public Collection<Aresta> arestasDeCruzamento(Grafo g);
}
seria implementaçoes de grafos...so que vc pode representar grafo por Matriz, Vetor de Lista Encadeadas e um outro tipo...ai tenho duvidas se preciso criar uma classe que implementa AlgoritmosEmGrafos para cada tipo de representaçao...
a duvida surgiu pois esse parametro TipoDeRepresentacao eh enum:public enum TipoDeRepresentacao {
MATRIZ_DE_ADJACENCIA , MATRIZ_DE_INCIDENCIA , LISTA_DE_ADJACENCIA;
}
teria que implementar uma classe pra todos os tipos de representaçao ou 1 classe para cada tipo de representaçao?
grato!