前序和中序可以唯一确定一课二叉树,前序可以确定根节点在中序中的位置,在递归简历左右子树。
#include "stdafx.h"
#include "stdio.h"
struct node
{
char value;
node *left;
node *right;
};
node * creat(char *pre,char *mid,int n)
{
if(n==0)
return NULL;
int k=0;
while(pre[0]!=mid[k])k++;
node * root=new node;
root->value=mid[k];
root->left=creat(pre+1,mid,k);
root->right=creat(pre+k+1,mid+k+1,n-k-1);
return root;
}
int main(int argc, char* argv[])
{
char *pre="ABCDEF";
char *mid="CBDEAF";
node *tree=creat(pre,mid,6);
return 0;
}