Я только что начал изучать Двоичное дерево. Есть ли алгоритм, чтобы узнать структуру двоичного дерева, учитывая Inorder и Postorder OR Inorder и Preorder? Я пытался сделать это вручную, но она никогда не выходит correct.For eg.-Эти два действительна Симметричная и Postorder обходу данного дерева:Двоичное дерево от заказа и порядка
Симметричный: DBFEAGCLJHK Postorder: DFEBGLJKHCA
Ясно, что А является корнем, поскольку он является последним элементом в Postorder. Теперь, глядя в Inorder, левое поддерево становится: {D B F E}, а правое поддерево становится: {G C L J H K}. Корень правого поддерева будет вторым последним элементом в preorder i.e C. Теперь я могу разделить правое поддерево (с C как root), давая {G} как правое поддерево и {L J H K} как левое. Поэтому у меня есть эта структура:
A
\
C
/
G
Но, независимо от того, какой алгоритм я применяю, следующий, похоже, работает по-разному для разных деревьев. Кто-то, пожалуйста, объясните.
'разделяй [... subtre e] с C как root), давая {G} как правое поддерево и {L J H K} как left' - это имеет «метки» _left_ и _right_ инвертированные – greybeard