code: def __branch_point_dfs(dfs_data):
      
      u = dfs_data['ordering'][0]
      large_n = {}
      large_n[u] = 0
      stem = {}
      stem[u] = u
      b = {}
      b[u] = 1
      __branch_point_dfs_recursive(u, large_n, b, stem, dfs_data)
      dfs_data['N_u_lookup'] = large_n
      dfs_data['b_u_lookup'] = b
      return
docs: DFS that calculates the b(u) and N(u) lookups, and also reorders the adjacency lists.