前言
已知某二叉树的前序序列为 ABCDEFGH,中序序列为CBDAGFHE
注意到中序序列的特点,一般中序序列中根节点的左边是其 左子树的全部结点,右边是其右子树的全部结点。并且左子树右子树的结点也是按中序排列的。
于是,思路出来了,根据先序序列得出结点为A,再到中序序列中找到A,并把中序序列中A左边、右边的节点数统计出来,左边对应根节点左子树,右边对应根节点右子树,再根据先序序列的左子树第一个结点B,又找到中序序列中的B,得到B的左右子树,如此循环递归下去…
构造二叉树的算法:
pre为先序,in为中序,n为结点个数
Bnode *Pre_and_in(char *pre,char *in,int