由扩展二叉树中序序列或者后序序列来构建一个二叉树
见得最多的都是由二叉树的前序和中序序列来构建一个个二叉树;或者由一个扩展二叉树的前序序列来构建二叉树,但是只输入一个扩展二叉树的中序序列能不能建树呢?只输入输入扩展前序序列然后用递归的方法是能建树的,书上说由输入扩展中序序列或者扩展后序序列,用递归也是能建树的,但是就是想不出来,求指教
void create1(struct BTree* *T) //扩展前序构建二叉树
{
char ch;
scanf("%c",&ch);
if(ch=='#') (*T)=NULL;
else
{
(*T)=(struct BTree*)malloc(LEN);
if( !(*T) ) return ;
(*T)->data=ch;
create1(&(*T)->lchild);
create1(&(*T)->rchild);
}
}
例:
扩展前序序列:AB#D##C##
扩展中序序列: #B#D#A#C#
扩展后序序列后序:###DB##CA
只输入扩展中序序列或者只输入扩展后序序列,用递归或者其他方法,能不能建树???书上说可以的但是想不出来…………