Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
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)
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
    def test_edgeMethods(self):
        edge = e.newEdge('Bogota', 'Cali')

        print(e.either(edge))
        print(e.other(edge, e.either(edge)))
        print(e.weight(edge))