#include<iostream>
using namespace std;
typedef int T;
class bst{
struct Node{
T data;
Node * L;
Node * R;
Node(const T&d):data(d),L(),R(){}
Node(const T&d,Node *l,Node *r):data(d),L(l),R(r){}
};
Node *rp;
int n;
public:
bst():rp(),n(){}
void insert(Node* &t,Node *p)//插入节点
{
if(t==NULL) t=p;
else if(p->data<t->data) insert(t->L,p);
else insert(t->R,p);
}
void insert(const T&d){insert(rp,new Node(d));}
void travel(Node *t)
{
if(t!=NULL)
{
travel(t->L);
cout<<t->data<<' ';
travel(t->R);
}
}
void travel(){travel(rp);cout<<endl;}
};
int main()
{
bst b;
b.insert(1);
b.insert(2);
b.insert(3);
b.insert(4);
b.insert(5);
b.travel();
return 0;
}