今天做了一道题,发现需要返回根节点,不想多想,就上网搜了一下,发现其中提供的办法都是需要使用父节点,其实并不需要使用父节点。
只需要使用递归函数返回值就可以
struct T{
int x;
T *lchild,*rchild;
};
T* init(T* &t){//树t的初始状态为t=NULL;e==0说明没有叶子节点
int e;
scanf("%d",&e);
if(e==0)t=NULL;
else {
t=new T;
t->x=e;
init(t->lchild);
init(t->rchild);
}
return t;
}
建立二叉排序树
struct T{
int x;
T *lchild,*rchild;
};
T* insert(T* &t,int data){
if(!t){
t=new T;
t->x=data;
t->lchild=t->rchild=NULL;
}
else if(t->x>data)insert(t->lchild,data);
else if(t->x<data)insert(t->rchild,data);
return t;
}
T* init(T* &t){//<span style="font-family: 'Courier New', Courier, monospace; font-size: 14px; white-spac