def __calculate_bu_dfs_recursively(u, b, dfs_data):
first_time = True<EOL>for v in dfs_data['<STR_LIT>'][u]:<EOL><INDENT>if a(v, dfs_data) == u:<EOL><INDENT>if first_time:<EOL><INDENT>b[v] = b[u]<EOL><DEDENT>else:<EOL><INDENT>b[v] = D(u, dfs_data)<EOL><DEDENT>__calculate_bu_dfs_recursively(v, b, dfs_data)<EOL><DEDENT>first_time = False<EOL><DEDENT>
Calculates the b(u) lookup table with a recursive DFS.