P2171 Hz吐泡泡

题目描述

这天,Hz大大心血来潮,吐了n个不同的泡泡玩(保证没有重复的泡泡)。因为他还要写作业,所以他请你帮他把这些泡泡排序成树(左子树<=根<右子树)。输出它的后序遍历。

BST插入操作模板

BST学习

#include<iostream>
#include<cstdio>
#include<cstring> using namespace std;
typedef struct node;
typedef node *tree;
struct node{
int x,dep;
tree lc,rc;
}*tr; int maxdep;
void insert(tree& bt,int n,int deep){
if(bt){
if(n<=bt->x) insert(bt->lc,n,deep+);
else insert(bt->rc,n,deep+);
}else{
bt=new node;
bt->x=n;
bt->dep=deep;
bt->lc=bt->rc=NULL;
maxdep=max(maxdep,deep);
}
}
int n;
void cou(tree bt){
if(bt){
cou(bt->lc);
cou(bt->rc);
printf("%d\n",bt->x);
}
}
int main()
{
scanf("%d",&n);
for(int x,i=;i<=n;i++){
scanf("%d",&x);
insert(tr,x,);
}
printf("deep=%d\n",maxdep);
cou(tr);
return ;
}

递归版的BST操作总结

void preorder(tree bt) { //先序遍历根结点为bt的二叉树的递归算法
if(bt) {
cout << bt->data;
preorder(bt->lchild);
preorder(bt->rchild);
}
}

先序遍历

void inorder(tree bt)  //中序遍历根结点为bt的二叉树的递归算法
{
if(bt)
{
    inorder(bt->lchild);
    cout << bt->data;
    inorder(bt->rchild);    
}    
}

中序遍历

void postorder(tree bt) { //后序遍历根结点为bt的二叉树的递归算法
if(bt) {
postorder(bt->lchild);
postorder(bt->rchild);
cout << bt->data;
}
}

后序遍历

void pre_crt(tree &bt) { //按先序次序输入二叉树中结点的值,生成
char ch;
ch = getchar(); //二叉树的单链表存储结构,bt为指向根结点的指针,'$'表示空树
if(ch != '$') {
bt = new node; //建根结点
bt->data = ch;
pre_crt(bt->lchild); //建左子树
pre_crt(bt->rchild); //建右子树
} else bt = NULL;
}

1.建立二叉树

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

2.删除二叉树

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;
}
}

3.插入一个数到BST中

tree findn(tree bt, int n) { //在二叉树中查找一个数,找到返回该结点,否则返回NULL。
if(bt) {
if(n < bt->data) findn(bt->lchild, n);
else if(n > bt->data) findn(bt->rchild, n);
else return bt;
} else return NULL;
}

4.在BST中查找一个数

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 << ')';
}
}
}

5.用嵌套括号法输出二叉树

洛谷——P2171 Hz吐泡泡的更多相关文章

  1. 洛谷 P2171 Hz吐泡泡

    P2171 Hz吐泡泡 题目背景 Hz大大是一种可爱的动物(神).他很喜欢吐泡泡(更喜欢写作业). 题目描述 这天,Hz大大心血来潮,吐了n个不同的泡泡玩(保证没有重复的泡泡).因为他还要写作业,所以 ...

  2. 洛谷 P2587 BZOJ 1034 [ZJOI2008]泡泡堂

    题目描述 //不知道为什么BZOJ和洛谷都没有这幅图了,大牛们几年前的博客上都有这幅图的,把它贴上来吧 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省 ...

  3. NOIP2017提高组Day2T3 列队 洛谷P3960 线段树

    原文链接https://www.cnblogs.com/zhouzhendong/p/9265380.html 题目传送门 - 洛谷P3960 题目传送门 - LOJ#2319 题目传送门 - Vij ...

  4. BZOJ1057或洛谷1169 [ZJOI2007]棋盘制作

    BZOJ原题链接 洛谷原题链接 设\(L[i][j],R[i][j],H[i][j]\)表示点\((i,j)\)向左.右.上尽量拓展的左端点.右端点.上端点的坐标. \(L,R\)直接初始化好,\(H ...

  5. 【贪心】洛谷2019 OI春令营 - 普及组 作业

    [P3817 小A的糖果 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. [贪 ...

  6. 莫比乌斯反演进阶-洛谷P2257/HDU5663

    学了莫比乌斯反演之后对初阶问题没有任何问题了,除法分块也码到飞起,但是稍微变形我就跪了.用瞪眼观察法观察别人题解观察到主要内容除了柿子变形之外,主要就是对于miu函数的操作求前缀和.进而了解miu函数 ...

  7. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  8. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  9. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

随机推荐

  1. bzoj2709: [Violet 1]迷宫花园

    二分答案,spfa check就行了. gb题卡精度. #include<cstdio> #include<iostream> #include<cstring> ...

  2. POJ 1477:Box of Bricks

    Box of Bricks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19949   Accepted: 8029 De ...

  3. 报表应用系列——图表JFreeChart: 第 4 章 折线图

    双击代码全选 1 2 3 4 5 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100 ...

  4. leetcode 784. Letter Case Permutation——所有BFS和DFS的题目本质上都可以抽象为tree,这样方便你写代码

    Given a string S, we can transform every letter individually to be lowercase or uppercase to create ...

  5. bzoj2440 [中山市选2011]完全平方数——莫比乌斯+容斥

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2440 莫比乌斯...被难倒... 看TJ:http://hzwer.com/4827.htm ...

  6. 杂项:game_navigation

    ylbtech-杂项:game_navigation 1.返回顶部 1. 2. 2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处: ...

  7. WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题

    今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException ...

  8. /bin/bash: jar: command not found(转载)

    转自:http://blog.csdn.net/zhangdaiscott/article/details/23138023 /bin/bash: jar: command not found 解决办 ...

  9. MQTT + apache-apollo服务器初学使用

    说明:MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通 ...

  10. bzoj 4424: Cf19E Fairy && codeforces 19E. Fairy【树形dp】

    参考:https://blog.csdn.net/heheda_is_an_oier/article/details/51131641 这个找奇偶环的dp1真是巧妙,感觉像tarjan一样 首先分情况 ...