二叉排序树

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:6039

解决:2538

题目描述:

输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。

输入:

输入第一行包括一个整数n(1<=n<=100)。     接下来的一行包括n个整数。

输出:

可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。     每种遍历结果输出一行。每行最后一个数据之后有一个空格。

样例输入:
5
1 6 5 9 8
样例输出:
1 6 5 9 8
1 5 6 8 9
5 8 9 6 1 
提示:

输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
typedef struct Node{Node *l, *r;int v;Node(){l = NULL; r = NULL;}
}*tree, Node;
tree build(tree p, int v){if(p == NULL){p = new Node();p->v = v;return p;}if(v < p->v)p->l = build(p->l, v);else if(v > p->v)p->r = build(p->r, v);elsereturn p;return p;
}
void PreOrder(tree p){if(p == NULL)return;printf("%d ", p->v);PreOrder(p->l);PreOrder(p->r);
}
void InOrder(tree p){if(p == NULL)return;InOrder(p->l);printf("%d ", p->v);InOrder(p->r);
}
void PostOrder(tree p){if(p == NULL)return;PostOrder(p->l);PostOrder(p->r);printf("%d ", p->v);
}
int main(){int N;while(~scanf("%d", &N)){tree p;p = NULL;int v;for(int i = 0; i < N; i++){scanf("%d", &v);p = build(p, v);}PreOrder(p);puts("");InOrder(p);puts("");PostOrder(p);puts("");}return 0;
}

二叉排序树(三序输出)相关推荐

  1. 【C语言】输入一个三位数,逆序输出

    代码: #include<stdio.h> int main() {int x;printf("请输入一个三位数:");scanf_s("%d", ...

  2. C语言编程>第三周 ⑦ 将一个数组逆序输出。

    例题:将一个数组逆序输出. 代码如下: /*程序分析:用第一个与最后一个交换.*/ #include<stdio.h> #define N 5 int main() {int a[N]={ ...

  3. python输入123输出321_python逆序输出,编程从键盘输入一个三位数,将它们逆序输出。如输入123,输出321.谢谢...

    python逆序输出,编程从键盘输入一个三位数,将它们逆序输出.如输入123,输出321.谢谢 python教程实现三位数的反序输出2020-10-06 12:32:19人已围观 7-12 逆序的三位 ...

  4. python输入123输出321_编程从键盘输入一个三位数,将它们逆序输出。如输入123,输出321.谢谢...

    展开全部 这个简单啊!下边的是2113我以前写的,你看看吧?希5261望对你有4102帮助!不完善的地方在1653于没有判断第一位是不是0的,你可以加上去 #include void main() { ...

  5. PHP输入123逆序输出321,编写程序,将一个三位数逆序输出,比如,原三位数为123,新数为321....

    编写一个程序,输入一个三位数,把这个数的百位数与个位数对调,输出对调后的数 参考:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/5522 ...

  6. 输入任意一个三位数字,将其各位数字反序输出(例如,输入123,输出321)。

    #include<stdio.h> int main( ) { int num1, num2; int a,b,c; /*分别表示输入的三位数的百位.十位. 个位上的数字*/ printf ...

  7. C/C++反序输出字符串总结

    2年前去T公司面试,面试官给了我一张纸一支笔,说写个程序吧,输入一个字符串然后反序输出.我问输入输出是用函数参数呢还是系统I/O,面试官说随你便,写完了说说各有什么优缺点吧.当时我大三,没有参加过AC ...

  8. -9 逆序输出一个整数的各位数字_计算机基础知识: 信息数字化

    计算机.数据与信息 无符号位数的表示 (一).四种常用的数制及它们之间的相互转换: 进制 基数 基数个数 权 进数规律 十进制 0.1.2.3.4.5.6.7.8.9 10 10i 逢十进一 二进制 ...

  9. 单链表的前K个的逆序输出

    单链表逆序输出也是常被面试官问到题算法题,所以自己就总结了一下,在此贴出算法,与小伙伴们相互交流. 首先要有三个指针,前两个分别指向首节点,首节点的下一个节点,第三个是临时指针,是为了储存首节点的下一 ...

最新文章

  1. 当我们在讨论奢侈品行业时,人工智能可以做什么?
  2. 爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
  3. Codeforces Round #470 (rated, Div. 2 C. Producing Snow(思维)
  4. 打散算法的三种解决方案及其选型场景
  5. 要学DOT NET了
  6. [转载]项目风险管理七种武器-霸王枪
  7. 详解Modbus通信协议---清晰易懂
  8. git 上传了一个非常大的文件,删除文件
  9. MyBatis执行原理图
  10. 程序员35岁之后的职业发展
  11. 20190905层析分析法matlab,未通过一致性检验时,重新构造判断矩阵再计算
  12. COLMAP: Structure-from-Motion Revisited 论文解读
  13. WIFI转串口无线传输模块,个人体会
  14. 【经典控制理论】| 自动控制原理知识点概要(上)
  15. python毕业设计 基于django框架个人博客系统毕业设计设计与实现
  16. 【ZCMU1411】喜闻乐见的a+b(20进制a+b)
  17. suspicious number
  18. php编程输出心形图案_PHP纯代码生成心形图片并自定义文字
  19. 【中国是部金融史-读后感】
  20. linux服务器测试软件,linux服务器常用测试工具及命令

热门文章

  1. 【HP 打印机】安装 Windows 7 中的网络打印机时收到错误消息:0x0000052e
  2. 2019计算机复试平均分,19考研全国平均分公布,20考研难度分析!
  3. 你越努力,运气就会越好!
  4. socket发送文件夹
  5. 解决文本搜索框输入中文出现单引号报错问题
  6. 「Excel常用函数」
  7. 坚持#第281天~KVM3-QEMU虚拟机的热迁移、桥接、NAT、仅主机模式、创建/删除一个QEMU虚拟机的脚本、
  8. CSS3 3D旋转图片立方体特效
  9. linux怎么给磁盘重新分区,如何给Linux磁盘分区
  10. linux彻底卸载软件步骤:以卸载wine为例