有向グラフの標準を使用して、
std::vector<size_type> dtime(N);
std::vector<size_type> ftime(N);
size_type t = 0;
dfs_time_visitor<size_type*> vis(&dtime[0], &ftime[0], t);
depth_first_search(graph, visitor(vis));
常にノード0からdfsを開始するように見えます。
既知の「ルートノード」から開始するようにアルゴリズムにどのように指示しますか?