deep_first_traversal