`
peizhiinfo
  • 浏览: 1426493 次
文章分类
社区版块
存档分类
最新评论

二叉树——(先序序列+中序序列)=后序序列

 
阅读更多

已知二叉树的先序遍历序列和中序遍历序列,求后序遍历序列。

先递归构造二叉树,然后递归得到后序序列。

思路:

先序序列的第一个结点为要构造二叉树的根结点,在中序序列中查找二叉树的根结点,则中序列根结点左边为根结点的左子树的中序序列,右边为根结点的右子树的中序序列。而先序序列根结点后面分别为它的左子树和右子树的先序序列。有了根结点在中序序列的位置,就知道了左子树和右子树的先序序列各自的位置。这样,就知道了根结点两个子树的序列。

然后在构造了根结点后,就可以递归调用函数来勾结根结点的左子树和右子树。

以上为二叉树的恢复。

后序遍历二叉树也是用递归即可。

代码如下:

string.find() 返回查找元素的下标

string.substr(a, b) 从第a个下标的元素开始截取b个元素

代码如下:



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics