⾸先我们得知道概念:
前序遍历:先访问当前节点,再访问当前节点的左⼦树,最后访问当前节点的右⼦树。对于⼆叉树,深度遍历与此同。规律:根在前;⼦树在根后且左⼦树⽐右⼦树靠前,且第⼀个就是根节点;
中序遍历:先访问当前节点的左⼦树,然后访问当前节点,最后是当前节点的右⼦树,⼆叉树,中序遍历会得到数据升序效果。规律:根在中;左⼦树在跟左边,右⼦树在根右边,左边部分是根结点的左⼦树的中序遍历序列,右边部分是根结点的右⼦树的中序遍历序列 ; 后序遍历:先访问当前节点的左⼦树,然后是当前节点的⼜⼦树,最后是当前节点。规律:根在后;⼦树在根前且左⼦树⽐右⼦树靠前,且最后⼀个节点是根节点。
⼀、前序+中序
1. 根据前序序列的第⼀个元素建⽴根结点;
2. 在中序序列中到该元素,确定根结点的左右⼦树的中序序列;
3. 在前序序列中确定左右⼦树的前序序列;
4. 由左⼦树的前序序列和中序序列建⽴左⼦树;
5. 由右⼦树的前序序列和中序序列建⽴右⼦树。
如:已知⼀棵⼆叉树的先序遍历序列和中序遍历序列分别是abdgcefh、dgbaechf,求⼆叉树及后序遍历序列。
先序:abdgcefh—>a bdg cefh
中序:dgbaechf—->dgb a echf
得出结论:a是树根,a有左⼦树和右⼦树,左⼦树有bdg结点,右⼦树有cefh结点。
先序:bdg—>b dg
中序:dgb —>dg b
得出结论:b是左⼦树的根结点,b⽆右⼦树,有左⼦树。
先序:dg—->d g
中序:dg—–>dg
t5荧光灯
得出结论:d是b左⼦树的根节点,d⽆左⼦树,g是d的右⼦树
然后对于a 的右⼦树类似可以推出
最后还原: a
b c
d e f一汽马自达车主俱乐部
g h
后序遍历:gdbehfca
新安江第二小学⼆、后序+中序:
已知⼀棵⼆叉树的后序序列和中序序列,构造该⼆叉树的过程如下:
社会科学辑刊1. 根据后序序列的最后⼀个元素建⽴根结点;
2. 在中序序列中到该元素,确定根结点的左右⼦树的中序序列;
3. 在后序序列中确定左右⼦树的后序序列;
4. 由左⼦树的后序序列和中序序列建⽴左⼦树;
5. 由右⼦树的后序序列和中序序列建⽴右⼦树
如还是上⾯题⽬:如:已知⼀棵⼆叉树的后序遍历序列和中序遍历序列分别是gdbehfca、dgbaechf,求⼆叉树
金山网镖6
后序:gdbehfca—->gdb ehfc a
中序:dgbaechf—–>dgb a echf
得出结论:a是树根,a有左⼦树和右⼦树,左⼦树有bdg结点,右⼦树有cefh结点。
后序:gdb—->gd b
中序:dgb—–>dg b并行计算机
得出结论:b是a左⼦树的根节点,⽆右⼦树,有左⼦树dg。
后序:gd—->g d
中序:dg—–>d g
得出结论:d是b的左⼦树根节点,g是d的右⼦树。
然后对于a 的右⼦树类似可以推出。然后还原。
三、前序+后序
前序和后序在本质上都是将⽗节点与⼦结点进⾏分离,但并没有指明左⼦树和右⼦树的能⼒,因此得到这两个序列只能明确⽗⼦关系,⽽不能确定⼀个⼆叉树。 故此法⽆。不能唯⼀确定⼀个⼆叉树。