from collections import deque
g = {
'a':['b','c'],
'b':['d'],
'c':['e','f'],
'd':['g'],
'e':[],
'f':[],
'g':[]
}
def trav_bfs(g,n,v):
q = deque([n])
v.add(n)
while q:
cnode = q.popleft()
print(cnode,end=' ')
for nn in g[cnode]:
if nn not in v:
v.add(nn)
q.append(nn)
v = set()
n = 'a'
trav_bfs(g, n, v)
# a b c d e f g