def __branch_point_dfs(dfs_data):
u = dfs_data['<STR_LIT>'][<NUM_LIT:0>]<EOL>large_n = {}<EOL>large_n[u] = <NUM_LIT:0><EOL>stem = {}<EOL>stem[u] = u<EOL>b = {}<EOL>b[u] = <NUM_LIT:1><EOL>__branch_point_dfs_recursive(u, large_n, b, stem, dfs_data)<EOL>dfs_data['<STR_LIT>'] = large_n<EOL>dfs_data['<STR_LIT>'] = b<EOL>return<EOL>
DFS that calculates the b(u) and N(u) lookups, and also reorders the adjacency lists.