2023-08-06 17:08:35 -07:00

52 lines
907 B
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# author: bt3gl
from collections import deque
class Graph:
def __init__(self, edges, n):
self.adj_list = [[] for _ in range(n)]
for (src, dest) in edges:
self.adj_list[src].append(dest)
self.adj_list[dest].append(src)
def bfs(graph, v, discovered):
q = deque()
discovered[v] = True
q.append(v)
while q:
v = q.popleft()
print(v, end=' ')
for u in graph.adj_list[v]:
if not discovered[u]:
discovered[u] = True
q.append(u)
def recursive_bfs(graph, q, discovered):
if not q:
return
v = q.popleft()
print(v, end=' ')
for u in graph.adj_list[v]:
if not discovered[u]:
discovered[u] = True
q.append(u)
recursive_bfs(graph, q, discovered)