首页 > 其他分享 >二叉树的其他重要操作

二叉树的其他重要操作

时间:2022-10-28 18:02:51浏览次数:54  
标签:ch tree else bt 二叉树 其他 操作 NULL

二叉树的其他重要操作

1,建树

代码:

 1 //建树
 2 void pre(tree &bt)     //先序次序输入
 3 {
 4     char ch;
 5     ch=getchar();    //单链表存储结构,bt为指向根结点的指针,$为空树
 6     if(ch!='$')
 7     {
 8         bt=new node;   //建立根节点
 9         bt->data=ch;
10         pre(bt->l);    //建立左子树
11         pre(bt->r);    //建立右子树
12     }
13     else bt=NULL;
14 }

2,删除树

代码:

1 void dis(tree &bt)
2 {
3     if(bt)
4     {
5         dis(bt->l);    //删除左子树
6         dis(bt->r);    //删除右子树
7         delete bt;     //释放父节点
8     }
9 }

 3,插入一个数到排序二叉树中

代码:

 1 //插入一个节点到二叉树中
 2 void insert(tree &bt,int n)
 3 {
 4     if(bt)
 5     {
 6         if(n<bt->data)
 7           insert(bt->l,n);
 8         else if(n>bt->data)
 9                insert(bt->r,n);
10     }
11     else
12     {            //新开一个空间 
13         bt=new node;
14         bt->data=n;
15         bt->l=bt->r=NULL;
16     }
17 } 

 

4,在排序二叉树中查找一个数,找到返回该节点,否则返回NULL

代码:

 1 //在排序二叉树中查找一个数,找到返回该结点,否则返回NULL
 2 tree find(tree bt,int n)
 3 {
 4     if(bt)
 5     {
 6         if(n<bt->data)
 7           find(bt->l,n);
 8         else if(n>bt->data)
 9                find(bt->r,n);
10              else
11                return bt;
12     }
13     else
14       return NULL;
15 } 

 

标签:ch,tree,else,bt,二叉树,其他,操作,NULL
From: https://www.cnblogs.com/xdzxmuchen/p/16833179.html

相关文章