C++二叉树的重要操作

typedef struct node;
typedef node *tree;
struct node
{
char data;
tree lc,rc;
};
tree bt;


//1.建立一颗二叉树 
void pre_crt(tree &bt)
{
char ch;
ch=getchar();//二叉树的单链表储存结构,bt为指向根节点的指针,'$'表示空串 
if(ch!='$')
{
bt=new node;//建根节点 
bt->data=ch;
pre_crt(bt->lc);//建左子树 
pre_crt(bt->rc);//建右子树 
}
else bt=NULL;
}


//2.删除二叉树
void dis(tree &bt)
{
if(bt)
{
dis(bt->lc);//删左子树 
dis(bt->rc);//删右子树 
delete bt;//释放父结点 
}
}


//3.插入一个结点到排序二叉树中
void insert(tree &bt,int n)//插入一个结点到排序二叉树中
{
if(bt)
{
if(n<bt->data)
insert(bt->lc,n);
else
if(n>bt->data) insert(bt->rc,n);
}
else 
{
bt=new node;//新开一个空间 
bt->data=n;
bt->lc=bt->rc=NULL;
}
} 


//4.在排序二叉树中查找一个数,找到返回该结点,否则返回NULL
void findn(tree bt,int n)
{
if(bt)
{
if(n<bt->data)
findn(bt->lc,n);
else
if(n>bt->data) findn(bt->rc,n);
else return bt;
}
else return NULL;
}


//5.用嵌套括号表示输出二叉树
void print(tree bt)
{
if(bt)
{
cout<<bt->data;
if(bt->lc||bt->rc)
{
cout<<'(';
print(bt->lc);
if(bt->rc) cout<<',';
print(bt->rc);
cout<<')';
}
}
}


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值