木の巡回
概要
木の頂点に番号を振る.
DFSの順
ソースコード
//dfsの行きがけ順
void preorder(const Graph &G,int n,int p,vector<bool>&visited,vector<int>&order){
visited[n]=true;
order.push_back(n);
for(auto&e:G[n]){
if(e.to==p)continue;
if(visited[e.to])continue;
preorder(G,e.to,n,visited,order);
}
}
//dfsの帰りがけ順
void postorder(const Graph &G,int n,int p,vector<bool>&visited,vector<int>&order){
visited[n]=true;
for(auto&e:G[n]){
if(e.to==p)continue;
if(visited[e.to])continue;
postorder(G,e.to,n,visited,order);
}
order.push_back(n);
}
BFSの順
ソースコード