DedSec Project

13 queue bfs — DedSec Project

from collections import deque def bfs(graph, start): seen, queue, output = {start}, deque( start ), while queue: node = queue.popleft() output.append(node) for child in graph.get(node, )…

Source reference

from collections import deque

def bfs(graph, start):
    seen, queue, output = {start}, deque([start]), []
    while queue:
        node = queue.popleft()
        output.append(node)
        for child in graph.get(node, []):
            if child not in seen:
                seen.add(child)
                queue.append(child)
    return output

if __name__ == '__main__':
    graph = {'a':['b','c'], 'b':['d'], 'c':['a'], 'd':[]}
    assert bfs(graph,'a') == ['a','b','c','d']
    print(bfs(graph,'a'))