Ejemplo n.º 1
0
  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;
  }
Ejemplo n.º 2
0
    @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;
    }
Ejemplo n.º 3
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;
 }