public List<Aresta> preparaArestas() { List<Aresta> ar = new ArrayList<Aresta>(); for (int i = 0; i < Edges.size(); i++) { Aresta current = Edges.get(i); if (!(current.getFrom() == 0 || current.getTo() == 0)) { ar.add(new Aresta(current.getFrom(), current.getTo(), current.getDistance())); } } return ar; }
@Override public int compareTo(Aresta compareAresta) { double compareDistance = compareAresta.getDistance(); double v1, v2; v1 = this.distance; v2 = compareDistance; // ascending order if (v1 > v2) { return 1; } if (v2 > v1) { return -1; } if (v1 == v2) { return 0; } return 0; }
public List<Aresta> recolocaArestas(List<Aresta> ar, double[] u) { int tot = 0; for (int i = 0; i < Edges.size(); i++) { if (tot == 2) { break; } if (Edges.get(i).getFrom() == 0 || Edges.get(i).getTo() == 0) { Aresta current = Edges.get(i); ar.add( new Aresta( current.getFrom(), current.getTo(), current.getDistance())); // retorna as duas menores arestas do vertice inicial ar.get(0) .setDistance(ar.get(0).getDistance() + u[ar.get(0).getFrom()] + u[ar.get(0).getTo()]); tot++; } } return ar; }