Как я могу превратить эту древовидную структуру
[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
Результат даже не нужно структурировать в виде дерева, четыре плоских массива в правильном порядке также подойдут.
Похоже, Поиск в глубину может быть подходящим алгоритмом, но я не могу понять псевдокод (что возвращает инцидент ()), поэтому я застрял.
Если бы кто-то мог предложить метод Ruby (или действительно простой для понимания псевдокод) для преобразования исходного вложенного массива в массив результатов, я был бы бесконечно благодарен.
И это не домашнее задание, скорее, это результат того, что он слишком длинный, так как я учился ... Мне нужно это, чтобы напечатать дерево зависимостей в правильном порядке для данной проблемы в системе отслеживания проблем.