我刚开始研究二叉树。给定中序和后序或中序和前序,是否有算法可以找出二叉树结构?我一直在尝试手动操作,但它永远不会正确。例如,这两个是给定树的有效 Inorder 和 Postorder 遍历:
订购:DBFEAGCLJHK 后订购:DFEBGLJKHCA
显然 A 是根,因为它是 Postorder 中的最后一个元素。现在按顺序看,左子树变为:{DBFE},右子树变为:{GCLJHK}。右子树的根将是前序中的倒数第二个元素,即 C。我现在可以进一步划分右子树(以 C 为根),将 {G} 作为右子树,将 {LJHK} 作为左子树。因此我有这个结构:
A
\
C
/
G
但是,无论我应用什么算法,next 似乎对不同的树都有不同的工作方式。有人请解释一下。