一些新同学在画二叉树时往往会摸不着头脑不知道怎么画,我也是刚刚学,接下来给你们提供我自己研究出来的两种定理,也欢迎各位对此批评指点:
①ZYT_先序遍历定理_前字母必比后字母平级或更高(能判断左右则不为同级)
②ZYT_中序遍历定理_前字母必在后字母左边
注:下面提到的由②可知即 由ZYT_中序遍历定理_前字母必在后字母左边 可知
如设一棵二叉树的先序序列:ABDFCEGH,中序序列BFDAGEHC,请画出这棵二叉树。
由先序遍历头字母可知根节点为A,
由中序遍历根节点A可得在左子树子孙(BFD),右子树子孙(GEHC),即
根据:
- ZYT_先序遍历定理_前字母必比后字母平级或更高(能判断左右则不为同级)
- ZYT_中序遍历定理_前字母必在后字母左边
可得
B一定在F和D的左边,故一定不为同级,即
同理可知,F在D的左边,故一定不为同级,即
另一边的CEGH由先序遍历头结点字母可知右子树根节点为C
由②可知GEH必在C的左边,故一定不为同级,即
EGH由先序遍历头字母可知该部分根节点为E
由②可知G必在E的左边,E必在H的左边。故为
综合左右子树可得该棵二叉树: