void pre_crt(tree &bt){ //按次序输入二叉树中节点的值生成
char ch;
ch=getchar(); //二叉树的单链表存储结构,bt为指向根节点的指针,'$'表示空树
if(ch!='$')
{
bt=new node;
bt->date=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->date) insert(bt->lchild);
if(n>bt->date) insert(bt->rchild);
}
else
{
bt=new node;
bt->date=n;
bt->lchild=bt->rchild=NULL;
}
}
tree findn(tree bt,int n) //在排序二叉树中查找一个数,找到返回该结点,否则返回NULL
{
if(bt)
{
if(n<bt->date) findn(bt->lchild);
else if(n>bt->date) findn(bt->rchild);
else return bt;
}
else
return NULL;
}
void print(tree bt)
{
if(bt)
{
cout<<bt->date;
if(bt->lchld||bt->rchild)
{
cout<<'(';
print(bt->lchild);
if(bt->rchild)
cout<<",";
print(bt->rchild);
cout<<')';
}
}
}
二叉树操作
最新推荐文章于 2022-11-17 09:59:53 发布