Patterns
Graph
Adjacency List
G = defaultdict(list)
for a, b in edges:
G[a].append(b)
G[b].append(a)G = defaultdict(list)
for a, b in edges:
G[a].append(b)G = defaultdict(dict)
for a, b, weight in edges:
G[a][b] = weight
G[b][a] = weightTraversal
visited = set()
def dft(node: int) -> None:
if node in visited:
return
visited.add(node)
for nei in G[node]:
dft(nei)stack = [start]
visited = set()
while stack:
node = stack.pop()
if node in visited:
continue
visited.add(node)
for nei in G[node]:
stack.append(nei)q = deque([start])
visited = set([start])
while q:
node = q.popleft()
for nei in G[node]:
if nei not in visited:
visited.add(nei)
q.append(nei)