def getEdge(graph, vertexa, vertexb): """ Retorna el arco asociado a los vertices vertexa ---- vertexb """ element = map.get(graph['vertices'], vertexa) lst = element['value'] itvertex = it.newIterator(lst) while (it.hasNext(itvertex)): edge = it.next(itvertex) if (e.either(edge) == vertexa or (e.other(edge, e.either(edge)) == vertexa)): if (e.either(edge) == vertexb or (e.other(edge, e.either(edge)) == vertexb)): return edge return None
def test_edgeMethods(self): edge = e.newEdge('Bogota', 'Cali') edge = e.newEdge('Bogota', 'Cali') self.assertEqual('Bogota', e.either(edge)) self.assertEqual('Cali', e.other(edge, e.either(edge))) self.assertEqual(e.weight(edge), 0)
def relax(search, edge): v = e.either(edge) w = e.other(edge, v) visited_v = map.get(search['visitedMap'], v)['value'] visited_w = map.get(search['visitedMap'], w)['value'] if visited_w['distTo'] > (visited_v['distTo'] + e.weight(edge)): distToW = visited_v['distTo'] + e.weight(edge) map.put(search['visitedMap'], w, {'marked':True,'edgeTo':edge,'distTo':distToW}) if minpq.contains(search['minpq'], w): minpq.decreasePriority(search['minpq'], w, distToW) else: minpq.insert(search['minpq'], w, distToW)
def adjacents(graph, vertex): """ Retorna una lista con todos los vertices adyacentes al vertice vertex """ element = map.get(graph['vertices'], vertex) lst = element['value'] lstresp = lt.newList() iter = it.newIterator(lst) while (it.hasNext(iter)): edge = it.next(iter) v = e.either(edge) if (v == vertex): lt.addLast(lstresp, e.other(edge, v)) else: lt.addLast(lstresp, v) return lstresp
def test_edgeMethods(self): edge = e.newEdge('Bogota', 'Cali') print(e.either(edge)) print(e.other(edge, e.either(edge))) print(e.weight(edge))