c语言简单question

已知一棵二叉树的中序序列为BDCEAFHG,后序序列为DECBHGFA,画出这棵二叉树,并写出先序序列。

img


先序序列为ABDCEFHG

  • 这篇博客: 二叉树的遍历以及笔试题中的 3、已知一颗二叉树的中序序列和后序序列分别是BDCEAFHG和DECBHGFA,画出这颗树 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • (1)由后序遍历特征,根结点比在后序序列尾部,即根结点是A;
    (2)由中序遍历特征,根结点必在中间,而且其左边必须全部是左子树子孙(BDCE),其右部必全部是右子树子孙(FHG);
    (3)继而根据后序中的DECB子树可确定B为A的左孩子,根据HGF得出F为A的右孩子;依次类推,可以唯一确定一棵二叉树如图1所示。
    但是,由一棵二叉树的先序序列和后序序列不能唯一确定一棵二叉树,因为无法确定左右子树两部分。例如,如果有先序序列AB,后序序列BA,因为无法确定B为左子树还是右子树,所以可以得到如图2所示的两棵不同的二叉树。

    图1(由中序序列和后序序列确定的二叉树)

    在这里插入图片描述

    图2(两颗不同的二叉树)

    在这里插入图片描述