このツリー構造をどのように変えることができますか
[1, [2, [3, 4]], [5, [6, [7], 8]]]
1
2
3
4
5
6
7
8
....基本的にすべてのリーフノードから1(ルート)へのパスを含むこの「逆ツリー」構造に:
[8, [5, [1]], 7, [6, [5, [1]]], 4, [2, [1]], 3, [2, [1]]]
8
5
1
7
6
5
1
4
2
1
3
2
1
結果はツリーとして構造化する必要はなく、正しい順序の4つのフラット配列でも問題ありません。
深さ優先探索が関連するアルゴリズムのように見えますが、擬似コード(incidentEdges()は何を返すのですか?)を理解できないため、かなり行き詰まっています。
誰かが元のネストされた配列を結果の配列に変換するためのRubyメソッド(または本当に理解しやすい擬似コード)を提供できれば、私は無限に感謝します。
そして、これは宿題ではなく、勉強してから長すぎる結果です...課題追跡システムで特定の課題の依存関係ツリーを適切な順序で印刷するには、これが必要です。