按先序次序构造二叉树:
当输入非正数时表示空数
//按先序次序构造二叉树
typedef struct BiTNode{
int data;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &T){
int a;
scanf("%d",&a);
if(x<=0) T=NULL;
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
T->data=a;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
return ;
}
先创建某一子树的左子树,如果左子树不存在(输入负数时),则创建其右子树,如果左子树存在,再创建该树的左子树,依次循环。需要注意的是,当某一子树左子树不存在则判断其右子树,右子树不存在则返回其父节点再判断右子树。