Lib/オイラーツアー
☆再帰を使わないオイラーツアーの実装☆
code:cpp
//index,rev_indexをN取る
ll pt = 0;
while(!stk.empty()){
stk.pop();
if(type){
//処理 (cf : seg.set(pt,w);
pt++;
stk.push({ほげほげ,false});
if(indexnext == -1) stk.push({ほげほげ,true}); }
}else{
//帰りがけ処理 (cf: seg.set(pt,-w);
pt++;
}
}
0→任意の頂点へのパスクエリ、部分木に対するクエリ、最小共通祖先(LCA)の取得などができる
パスクエリ+LCAで任意の2頂点間の距離が取れる