adjacent(G, u, v): boolneighbors(G, u): setadd_vertex(G, u)remove_vertex(G, u)add_edge(G, u, v)remove_edge(G, u, v)adjacent e neighborsu em $L{i-1}$
                  from collections import deque as Queue
  def bfs(G, s):
      visited = set()
      queue = Queue()
      queue.append(s)
      while queue:
          u = queue.popleft()
          for v in neighbor(G, u):
              if v not in visited:
                  queue.append(v)
          visited.add(u)
  def dfs(G, s):
      visited = set()
      queue = list()
      queue.append(s)
      while queue:
          u = queue.pop()
          for v in neighbor(G, u):
              if v not in visited:
                  q.append(v)
          visited.add(u)