博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉搜索树的建树与遍历
阅读量:5334 次
发布时间:2019-06-15

本文共 1631 字,大约阅读时间需要 5 分钟。

注意要插入的值,如果等于当前节点,就把它变成当前节点的右儿子

此代码是中南大学暑训入门 B题的AC代码

#include
#define ll long longusing namespace std;struct node{ ll data; node * lson; node * rson;}*head;int t;void build(ll x,node *p){ if(p==NULL){ node * pp; pp=new node ; pp->data=x; pp->lson=NULL; pp->rson=NULL; head=pp; return; } if(p->data<=x&&p->rson){build(x,p->rson);} else if(p->data>x&&p->lson){build(x,p->lson);} else if(p->data<=x&&!p->rson){ node * pp; pp=new node ; pp->data=x; pp->lson=NULL; pp->rson=NULL; p->rson=pp; } else if(p->data>x&&!p->lson){ node * pp; pp=new node ; pp->data=x; pp->lson=NULL; pp->rson=NULL; p->lson=pp; }}void preview(node *p){ if(p==NULL){return;} if(t){cout<<" ";} cout<
data;t++; preview(p->lson); preview(p->rson);}void midview(node *p){ if(p==NULL){return;} midview(p->lson); if(t)cout<<" "; cout<
data;t++; midview(p->rson);}void posview(node *p){ if(p==NULL){return;} posview(p->lson); posview(p->rson); if(t){cout<<" ";} cout<
data;t++;}void delet(node *p){ if(p==NULL){return;} delet(p->lson); delet(p->rson); delete p;}int main(){ int T; while(cin>>T) while(T--){ int n; ll x; cin>>n; head=NULL; for(int i=0;i
>x; build(x,head); } t=0; preview(head); cout<

  

转载于:https://www.cnblogs.com/ZGQblogs/p/9095867.html

你可能感兴趣的文章
dbcp 1.4 底层连接断开时内存泄露bug
查看>>
关于密码
查看>>
ASP.NET 导出PPT
查看>>
Git忽略规则及.gitignore规则不生效的解决办法
查看>>
How to fix the sources list
查看>>
Eclipse的数据库插件
查看>>
mysql简单学习
查看>>
嵌入式操作系统
查看>>
URI和URL的区别
查看>>
UI---startup--jquery
查看>>
echart使用总结
查看>>
TCP协议中的三次握手和四次挥手(图解)
查看>>
更改Win10用户名为英文,还有一些善后
查看>>
第1章2节《MonkeyRunner源码剖析》概述:边界(原创)
查看>>
android:layout_gravity和android:gravity的区别
查看>>
Spring事务管理(详解+实例)
查看>>
aix转移lv大小到其它磁盘
查看>>
JS实现上传图片的三种方法并实现预览图片功能
查看>>
使用Yii框架完整搭建网站流程入门
查看>>
2018.09.17错误1
查看>>