本 (Intro to Algorithm) によると、dfs では、エッジは 4 種類に分類されます。
- ツリー エッジ、エッジ (u,v) で v が最初に検出された場合、(u, v) はツリー エッジです。
- バック エッジ、……、v が既に発見されていて、v が先祖である場合、それはバック エッジです。
- 前方エッジ、……、v が既に発見されていて、v が u の子孫である場合、前方エッジです。
- クロス エッジ、上記 3 つを除くすべてのエッジ。
私の質問は、(u, v) がバック エッジかフォワード エッジかを把握しようとしているときに、v が u の祖先か子孫かをどのように識別できるかということです。