目录
(A2I1J1)(A2I1J1K1)(A2I1J1K1L1)(A2I1J1K2)(A2I1J1K2P2)(A2I1J1K2P2Q2)
一、由中根和后根遍历序列构造二叉树(同理中根与先根)
中根次序遍历序列:(先左后根再右)
C D B E G F H A N M O L K P Q S R J I T
后根次序遍历序列:(先左后右再根)
D C G H F E B N O M L S R Q P K J T I A
二、解题方法
1.根节点
由后根的末尾确定:A为根节点。
2.根节点A的左右子树
由中根确定A前为A的左子树:CDBEGFH,A后为A的右子树:NMOLKPQSRJIT。
(A1)A的左子树
对A左子树的七个节点在后根中顺序末尾得B为A左子树的树根(即B的左节点),则对应中根B前为B的左子树:C D,B后为B的右子树:EGFH。
(A1B1)B的左子树
由后根中CD两节点次序确定C为B左子树的根(即B的左节点),又因中根中D在C后,则D为C的右节点。
(A1B2)B的右子树
由后根中GHFE节点次序确定E为B右子树的根(即B的右节点),再由中根确定E后为E的右子树:GFH。
(A1B2E2)E的右子树
由后根中GHF节点次序确定F为E右子树的根(即E的右节点),再由中根确定F后为F的左节点:G,F前为F的右节点H。
(A2)A的右子树
对A右子树后根次序中末尾得I为A右子树的根,再由中根确定I后为I的右节点:T,I前为I的左子树:NMOLKPQSRJ。
(A2I1)I的左子树
对I左子树后根次序中末尾得J为I左子树的根,再由中根确定J前为J的左子树:NMOLKPQSR。
... ...
(A2I1J1)(A2I1J1K1)(A2I1J1K1L1)(A2I1J1K2)(A2I1J1K2P2)(A2I1J1K2P2Q2)
注:此处字母为节点,1为左子树(节点),2为右子树(节点),例如A2I1J1K2P2Q2表示从A的右子树一直推断到Q的右子树。
3.结果
三、总结思路
1.递归(找根,分子树,构建新树)
采用递归思想,不断从后根次序中找根节点,再依据中根次序中根节点的前后部分找出左右子树,再将左右子树作为新的树,从新的树的后根次序中找子树的根节点,再分新的左右子树,依次类推。(可用代码实现,有空了再写^_^)
2022.11.07-08
初稿