#include<iostream>
using namespace std;
struct bt{
int data;
bt*lc;
bt*rc;
bt(int a){
data = a;
lc=NULL;
rc=NULL;
}
};
void add(bt*p,bt*q){
if(p->data==q->data){
return;
}
if(p->data>q->data&&p->lc){
add(p->rc,q);
return;
}
if(p->data<q->data&&p->rc){
add(p->rc,q);
return;
}
if(p->data>q->data){
p->lc=q;
return;
}
else{
p->rc=q;
return;
}
}
void zx(bt*p){
if(p->lc){
zx(p->lc);
}
cout<<p->data<<" ";
if(p->rc){
zx(p->rc);
}
}
int main(){
int m,a;
cin>>m>>a;
bt*root=new bt(a);
for(int i=0;i<m-1;i++){
cin>>a;
bt*temp=new bt(a);
add(root,temp);
}
zx(root);
return 0 ;
}
二叉排序树
最新推荐文章于 2024-05-19 12:01:11 发布