Example #1
0
  private int distancia_aux(
      Map<String, Ligacao> ligacoes,
      DijElem elemAct,
      HashMap<String, DijElem> elementos,
      int greycount) {
    Collection<Ligacao> coll = ligacoes.values();
    int grey = greycount;

    for (Ligacao lig : coll) {
      DijElem target = elementos.get(lig.get_Localidaded());

      if (target != null
          && (target.get_Vis() != _VIS_BLACK)
          && (target.get_Nrlocalidades() > (elemAct.get_Nrlocalidades() + 1))) {
        target.set_Nrlocalidades(elemAct.get_Nrlocalidades() + 1);
        target.set_Pai(elemAct.get_Nome());
      } else if (target == null) {
        target =
            new DijElem(
                lig.get_Localidaded(),
                elemAct.get_Nrlocalidades() + 1,
                elemAct.get_Nome(),
                _VIS_GREY);

        grey++;

        elementos.put(lig.get_Localidaded(), target.clone());
      }
    }

    return grey;
  }