这个问题呢其实很简单,去年考试我们就考到了
1.中序遍历的递归算法定义:
若二叉树非空,则依次执行如下操作:
(1)遍历左子树;
(2)访问根结点;
(3)遍历右子树。
2.先序遍历的递归算法定义:
若二叉树非空,则依次执行如下操作:
(1) 访问根结点;
(2) 遍历左子树;
(3) 遍历右子树。
3.后序遍历得递归算法定义:
若二叉树非空,则依次执行如下操作:
(1)遍历左子树;
(2)遍历右子树;
(3)访问根结点。
比如你知道一个程序的先序遍历是ABCDEFG 中序遍历是CBDAEGF让你推算出后序遍历
因为先序遍历的顺序是根-左-右 那么我们看先序遍历ABCDEFG,那么A就是根
再看中序遍历CBDAEGF,根据中序遍历的左-根-右 看出A左边CBD的都是左子树,右边的EGF是左子树
然后对先序遍历划分 A/BCD/EFG
对左子树CBD 由先序遍历中的A/BCD/EFG可以看出BCD中B在前面 则B是左子树的根 C是下一行的左子树
同理可对EFG分析
那么画出图 A
/ \
B E
/\ \
C D F
/
G
那么后序遍历CDBGFEA
我当初也学了一段时间,比较绕是吧
我在这写了半天 不知道你能看懂不
不行的加我Q
温馨提示:答案为网友推荐,仅供参考