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; }
private DijElem verificaproxnodo(HashMap<String, DijElem> elementos) { DijElem prox = null; Collection<DijElem> coll = elementos.values(); for (DijElem elem : coll) { if (elem.get_Vis() != _VIS_BLACK && (prox == null || prox.get_Nrlocalidades() > elem.get_Nrlocalidades())) { prox = elem; } } return prox; }