深さ優先と幅優先の両方のトラバーサル順序で、任意のツリーのツリー トラバーサル アルゴリズムが必要です。注意が必要なのは、任意のノードから開始して、別の特定のノードを通過するまで継続できる必要があることです。
これで、通常のアルゴリズムのいずれかを使用して、開始ノードに到達するまでトラバースされたノードを無視し、終了ノードまで続行できます (現在はそうしています) が、これは見苦しく非効率的です。
何か提案があればお願いします。
更新: 各ノードには ID が関連付けられています。場合によっては、開始ノード参照と終了ノード参照を用意します。それ以外の場合は、2 つの ID が与えられ、指定されたノードが開始ノードであるか終了ノードであるかを、それらの ID を調べて確認します。深さ優先トラバーサルを使用して、開始ノードを見つけます。開始ノードと終了ノードはどちらも、階層内のどこにでも配置できます。開始ノードと終了ノードの両方への参照が既に与えられている場合、誰かがアイデアを思い付くことができることを願っています。ところで、ツリー内のノードは実際にはソート順に従ってソートされます。ソート順は、ノードのサブノードごとに 0 から始まり、ルート ノードが 1 つあります。