#ifndef ST_CLASS
#define ST_CLASS
#include <iostream>
using namespace std;
class ST
{
public:
ST(int maxN)
{ head=0;}
int search(int v)
{
return searchR(head, v);
}
int insert(int x)
{
insertR(head, x);
}
void show()
{
showR(head);
}
private:
struct node
{
int item;
node *l, *r;
node (int x)
{
item = x;
l = 0;
r = 0;
}
};
typedef node *link;
link head;
int nullItem;
int searchR(link h, int v)
{
if(h==0) return nullItem;
int t = h->item;
if(v == t) return h->item;
if(v < t)
return searchR(h->l, v);
else
return searchR(h->r, v);
}
void insertR(link& h, int x)
{
if(h==0)
{
h = new node(x);
return ;
}
if(x < h->item)
insertR(h->l, x);
else
insertR(h->r, x);
}
void showR(link h)
{
if(h==0) return;
showR(h->l);
cout << h->item << " ";
showR(h->r);
}
};
#endif