二叉树求解前序序列、中序序列、后序序列

前序序列:根左右;
中序序列:左根右;
后序序列:左右根。

从以下例子可以非常清楚地明白
图源参考
对于前序和中序的情况
前序序列:根左右
中序序列:左根右
1. 先找出前序的第一个节点(根节点),然后从中序,根据根节点分为左边树与右边树,然后再根据前序中紧邻根节点的元素,确定好根节点紧邻的第一个元素;
2. 然后就是套娃的过程:将紧邻根节点的元素作为“根节点”,从中序,根据“根节点”分出其左边树与右边树,再根据前序中紧邻“根节点”的元素继续找出下一个,直到结束。。。
在这里插入图片描述
对于中序和后序的情况
中序序列:左根右
后序序列:左右根
例子如下:
一棵二叉树的后序遍历序列为DGJHEBIFCA ,中序遍历序列为DBGEHJACIF,还原二叉树。
与前中序同样的道理,只是根节点在后序中的最后。
根据后序结果,根节点为A,从中序将节点分为左边树与右边树,然后找紧邻A的元素,即C为CIF一边的根节点
然后又开始套娃,除去AC后,说明F也是IF的根节点,这样,一边的就结束了,然后继续套娃。。。

需要注意的是,别忘了左右树的方向区别
结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值