std::stack dfs