【模板】根据遍历序列确定二叉树

转自:https://blog.csdn.net/sinat_39253550/article/details/73614755

已知二叉树的先序序列和中序序列

1.在先序序列中,第一个结点一定是二叉树的根结点。
2.在中序序列中,根结点必然将中序序列分割成两个子序列;前一个子序列是根结点的左子树的中序序列,后一个是右子树的的中序序列。
3.根据这两个子序列,在先序序列中找到对应的左右子序列。
4.在先序序列中,左子序列的第一个结点是左子树的根结点,右子序列同理。 
5.如此递归下去……

总结:

先序配合中序时,中序负责找左右子序列,先序负责找子树的根节点。

由二叉树的中序序列和后序序列

1.在后序序列,最后一个结点一定是二叉树的根结点。
2.在中序序列中,根结点必然将中序序列分割成两个子序列;前一个子序列是根结点的左子树的中序序列,后一个是右子树的的中序序列。
3.根据这两个子序列,在后序序列中找到对应的左右序列。
4.在后序序列中,左子序列的最后一个结点是左子树的根结点,右子序列同理 。
5.如此递归下去……

总结:

扫描二维码关注公众号,回复: 5394716 查看本文章

后序配合中序时,中序负责找左右子序列,后序负责找子树的根结点。

注意:根据先序序列和后序序列是不能确定一个二叉树的

综上所述:

配合中序序列时,先序和后序都是确定子树的根结点,区别是根结点在其子序列的位置(先序是子序列的第一个,后序是子序列的最后一个);而中序序列都是在先序或后序序列找到根结点后,找到左右子序列。

猜你喜欢

转载自www.cnblogs.com/kannyi/p/10464125.html