操作(树的遍历一般指的是二叉树遍历)
经常考的,树的遍历和已知两种遍历求原始二叉树
遍历
先序遍历 【先访问根节点】
先访问跟节点
再先序访问左子树
在先序访问右子树
中序遍历 【中间访问根节点】
中序遍历左子树
在访问根节点
在中序遍历右子树
后序遍历 【最后访问根节点】
中序遍历左子树
中序遍历右子树
在访问根节点
已知两种遍历求原始二叉树
知道其中任何一种序列,都不能把原始的二叉树给还原出来
先序和中序、中序和后续,我们可以还原出原始二叉树。
但是,通过先序和后续 是无法还原出原始的二叉树
换种说法:
只有通过先序和中序、中序和后序才能唯一的确定一个二叉树。
已知先序和中序,求后序:
使用先序和中序,把原始的二叉树求出来,才能知道后序
例子1:
先序:ABCDEFGH
中序:BDCEAFHG
求后续
先还原二叉树:
后序为: DECBHGFA
同样的
已知中序和后序,求先序
中序:BDCEAFHG
后序:DECBHGFA
还原二叉树:
还是上图所示。
学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog