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