树的其他操作
作者:
Juan
,
2021-07-26 09:36:03
,
所有人可见
,
阅读 334
void pre_ctr(tree &bt)
{
char ch;
ch = getchar();
if(ch != '$')
{
bt = new node;
bt->data = ch;
pre_crt(bt->lchild);
pre_crt(bt->rchild);
}
else
bt = NULL;
}
void dis(tree &bt)
{
if(bt)
{
dis(bt->lchild);
dis(bt->rchild);
delete bt;
}
}
void insert(tree &bt, int n)
{
if(bt)
{
if(n < bt->data)
insert(bt->lchild, n);
else if(n > bt->data)
insert(bt->rchild, n);
}
else
{
bt = new node;
bt->data = n;
bt->lchild = bt->rchild = NULL;
}
}
int findn(tree bt, int n)
{
if(!bt) return NULL;
if(n < bt->data)
findn(bt->lchild, n);
else if(n > bt->data)
findn(bt->rchild, n);
else
return bt;
}
void print(tree bt)
{
if(bt)
{
cout<<bt->data;
if(bt->lchild||bt->rchild)
{
cout<<'(';
print(bt->lchild);
if(bt->rchild)
cout<<',';
print(bt->rchild);
cout<<')';
}
}
}