私はこの問題を抱えています:いくつかの配列が与えられた場合(たとえば、Perlまたは他の言語で):
1. (A,B,C)
2. (B,D,E,F)
3. (C,H,G)
4. (G,H)
各配列では、最初の要素が親で、残りはその子です。この場合、要素 A には 2 つの子 B と C があり、B には 3 つの子 D、E、F があります。この配列のセットを処理し、正しい順序を含むリストを生成したいと思います。この場合、A がルート要素なので B と C が続き、B の下には D、E、F があり、C の下には G と H があり、G も子として H を持っています (つまり、要素は複数の親を持つことができます)。 )。これが結果の配列になるはずです。
重要: 配列番号 3 を見てください。4 番目の配列では G の子ですが、H は G の前にあります。したがって、各配列には特定の子の順序はありませんが、最終結果 (以下に示すように) では、子/連の前に親が必要です。
(A,B,C,D,E,F,G,H) または (A,C,B,D,E,F,G,H) または (A,B,C,G,H,D,E) 、F)
その配列を作成する再帰的な方法があればいいのですが、必須ではありません。御時間ありがとうございます..