typedef struct node{ //二叉树标准链式存储结构
char data; //节点值
struct node *lchild; //左子节点
struct node *rchild; //右子节点
} NODE; //二叉树的结构
前序+中序
NODE *create_tree_from_pre_in_order(char *preorder, char *inorder, int len) { //前序序列,中序序列,结点个数
int i;
NODE *root;
if (len <= 0) return NULL;
root = (NODE *)malloc(sizeof(NODE));
root->data = *preorder;
for (i = 0; ; i++)
if (inorder[i] == root->data) break; //找到当前前序中的结点在中序序列中的位置
root->lchild = create_tree_from_pre_inorder(preorder + 1, inorder, i);
root->rchild = create_tree_from_pre_inorder(preorder + i + 1, inorder + i + 1, len - i - 1);
return root;
}
后序+中序
NODE *create_tree_from_post_in_order(char *inorder, char *postorder, in