Рассмотрим ситуацию, когда у вас есть два списка узлов, из которых все, что вы знаете, является тем, что один является представлением об обеде предварительного заказа какого-либо дерева, а другой - представлением обхода постображения того же дерева.
Я считаю, что можно восстановить дерево именно из этих двух списков, и я думаю, что у меня есть алгоритм для этого, но не доказал этого. Поскольку это будет частью проекта мастеров, я должен быть абсолютно уверен, что это возможно и правильно (математически доказано). Однако это не будет в центре внимания проекта, поэтому мне было интересно, есть ли там источник (т.е. Бумага или книга), которые я могу привести для доказательства. (Может быть, в TAOCP? Кто-нибудь знает раздел возможно?)
Короче говоря, мне нужен проверенный алгоритм в кабриолетном ресурсе, который реконструирует дерево из его предшествующих и последующих порядков.
Примечание. Дерево, о котором идет речь, вероятно, не будет бинарным или сбалансированным, или что-нибудь, что сделало бы его слишком легким.
Примечание2: Использование только предзаказов или списка расписаний будет еще лучше, но я не думаю, что это возможно.
Примечание3: node может иметь любое количество детей.
Примечание4: Меня беспокоит только порядок братьев и сестер. Влево или вправо не имеет значения, когда есть только один ребенок.