def depth_first_search(graph, root_node=None):
ordering, parent_lookup, children_lookup = depth_first_search_with_parent_data(graph, root_node)<EOL>return ordering<EOL>
Searches through the tree in a breadth-first fashion.
        If root_node is None, an arbitrary node will be used as the root.
        If root_node is not None, it will be used as the root for the search tree.
        Returns a list of nodes, in the order that they were reached.