Exemplo n.º 1
0
def dfs(search, v):
    adjs = g.adjacents(search['graph'], v)
    adjs_iter = it.newIterator(adjs)
    while (it.hasNext(adjs_iter)):
        w = it.next(adjs_iter)
        visited_w = map.get(search['visitedMap'], w)
        if visited_w == None:
            map.put(search['visitedMap'], w, {'marked': True, 'edgeTo': v})
            dfs(search, w)
Exemplo n.º 2
0
def dfs_2(grafo, v, revisados):
    adjs = g.adjacents(grafo, v)
    adjs_iter = it.newIterator(adjs)
    while (it.hasNext(adjs_iter)):
        w = it.next(adjs_iter)
        visited_w = map.contains(revisados, w)
        if visited_w == False:
            map.put(revisados, w, {'marked': True, 'edgeTo': v})
            dfs_2(grafo, w, revisados)
Exemplo n.º 3
0
def bfs(search, source):
    queue = q.newQueue()
    q.enqueue(queue, source)
    while not (q.isEmpty(queue)):
        v = q.dequeue(queue)
        adj_v = g.adjacents(search['graph'], v)
        adj_it = it.newIterator(adj_v)
        while it.hasNext(adj_it):
            w = it.next(adj_it)
            visited_w = map.get(search['visitedMap'], w)
            if visited_w == None:
                map.put(search['visitedMap'], w, {'marked': True, 'edgeTo': v})
                q.enqueue(queue, w)
Exemplo n.º 4
0
def bfs(search, source):
    queue = q.newQueue()
    q.enqueue(queue, source)
    while not (q.isEmpty(queue)):
        v = q.dequeue(queue)
        visited_v = map.get(search['visitedMap'], v)['value']
        adjs = g.adjacents(search['graph'], v)
        adjs_iter = it.newIterator(adjs)
        while (it.hasNext(adjs_iter)):
            w = it.next(adjs_iter)
            visited_w = map.get(search['visitedMap'], w)
            if visited_w == None:
                map.put(search['visitedMap'], w, {
                    'marked': True,
                    'edgeTo': v,
                    'distTo': visited_v['distTo'] + 1
                })
                q.enqueue(queue, w)
Exemplo n.º 5
0
def adjacents(graph, vertex):
    """
    Retorna una lista con todos los vertices adyacentes al vertice vertex
    """
    if (graph['type'] == "ADJ_LIST"):
        return alt.adjacents(graph, vertex)