如题,已知中序和前序(或后序)遍历结果生成树,算法分为两部分,一部分为已知前序和中序,另一部分为已知后序和中序。
思路
已知前序和中序
- 定位树根,树根即当前前序的首节点。
- 定位树根位于中序的位置,该位置左边即左子树,右边即右子树。
- 递归左右子树。
已知后序和中序
同理
举例
已知
后序序列 LHDKEBFGCA 中序序列 HLDBEKAFCG
求解
- 由后序序列定位树根,树根为A
- 节点A的左子树的中序为HLDBEK,左子树的后序为LHDKEB,右子树的中序为FCG,右子树的后序为FGC
- 对于左子树,树根为B,继续第二步,对于右子树,树根为G,继续第二步。
代码
1 | // |