Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Método que calcula e retorna o menor percurso em número de linhas entre as estações estacaoOrigem e estacaoDestino.
- * @param estacaoOrigem
- * @param estacaoDestino
- * @return percurso
- */
- public static Percurso a6_percursoMenorNumLinhas(Estacao estacaoOrigem, Estacao estacaoDestino) {
- Percurso percurso = new Percurso();
- percurso.setEstacaoOrigem(estacaoOrigem);
- percurso.setEstacaoDestino(estacaoDestino);
- LinkedList<Estacao> caminho = new LinkedList<>();
- ArrayList<LinkedList<Estacao>> paths = new ArrayList<>();
- //METODO AQUI
- List<Pair<Estacao, String>> percursoLinha = new ArrayList<>();
- List<Pair<Estacao, Tempo>> percursoTempo = new ArrayList<>();
- percursoLinha.add(new Pair<>(estacaoOrigem, Metro.edgeLessWeight(estacaoOrigem, caminho.get(1)).getElement()));
- percursoTempo.add(new Pair<>(estacaoOrigem, TEMPO_POR_OMISSAO));
- int minutos = 0;
- for (int i = 1; i < caminho.size() - 1; i++) {
- minutos = (int) Metro.edgeLessWeight(caminho.get(i - 1), caminho.get(i)).getWeight();
- minutos = minutos + percursoTempo.get(i - 1).getValue().getMinutos();
- Tempo tempo = new Tempo(percursoTempo.get(i - 1).getValue().getHoras(), minutos, percursoTempo.get(i - 1).getValue().getSegundos());
- percursoTempo.add(new Pair<>(caminho.get(i), tempo));
- percursoLinha.add(new Pair<>(caminho.get(i), Metro.edgeLessWeight(caminho.get(i), caminho.get(i + 1)).getElement()));
- }
- percursoLinha.add(new Pair<>(caminho.get(caminho.size() - 1), percursoLinha.get(caminho.size() - 2).getValue()));
- Tempo instanteFinal = new Tempo(percursoTempo.get(caminho.size() - 2).getValue().getHoras(), percursoTempo.get(caminho.size() - 2).getValue().getMinutos(), percursoTempo.get(caminho.size() - 2).getValue().getSegundos());
- instanteFinal.adicionarMinutos((int) Metro.edgeLessWeight(caminho.get(caminho.size() - 2), caminho.get(caminho.size() - 1)).getWeight());
- percursoTempo.add(new Pair<>(caminho.get(caminho.size() - 1), instanteFinal));
- percurso.setInstanteFinal(instanteFinal);
- percurso.setPercursoLinhas(percursoLinha);
- percurso.setPercursoTempo(percursoTempo);
- return percurso;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement