建立二叉树,其实与二叉树的遍历类似,把打印结点的部分换成生成结点、给结点赋值的操作即可
比如代码:
//利用前序遍历序列AB#D##C#建立二叉树
void CreateBiTree(TreeNode*T)
{
typename ch;
scanf("%c", ch);
if (ch == '#');
T = NULL;
else {
TreeNode*T = new TreeNode;
if (!T)//检查T结点是否创建成功
exit(OVERFLOW);
T->val = ch;//生成根结点
CreateBiTree(T->left);//构建左子树
CreateBiTree(T->right);//构建右子树
}
}