二叉排序树(三序输出)
二叉排序树
时间限制: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; }
二叉排序树(三序输出)相关推荐
- 【C语言】输入一个三位数,逆序输出
代码: #include<stdio.h> int main() {int x;printf("请输入一个三位数:");scanf_s("%d", ...
- C语言编程>第三周 ⑦ 将一个数组逆序输出。
例题:将一个数组逆序输出. 代码如下: /*程序分析:用第一个与最后一个交换.*/ #include<stdio.h> #define N 5 int main() {int a[N]={ ...
- python输入123输出321_python逆序输出,编程从键盘输入一个三位数,将它们逆序输出。如输入123,输出321.谢谢...
python逆序输出,编程从键盘输入一个三位数,将它们逆序输出.如输入123,输出321.谢谢 python教程实现三位数的反序输出2020-10-06 12:32:19人已围观 7-12 逆序的三位 ...
- python输入123输出321_编程从键盘输入一个三位数,将它们逆序输出。如输入123,输出321.谢谢...
展开全部 这个简单啊!下边的是2113我以前写的,你看看吧?希5261望对你有4102帮助!不完善的地方在1653于没有判断第一位是不是0的,你可以加上去 #include void main() { ...
- PHP输入123逆序输出321,编写程序,将一个三位数逆序输出,比如,原三位数为123,新数为321....
编写一个程序,输入一个三位数,把这个数的百位数与个位数对调,输出对调后的数 参考:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/5522 ...
- 输入任意一个三位数字,将其各位数字反序输出(例如,输入123,输出321)。
#include<stdio.h> int main( ) { int num1, num2; int a,b,c; /*分别表示输入的三位数的百位.十位. 个位上的数字*/ printf ...
- C/C++反序输出字符串总结
2年前去T公司面试,面试官给了我一张纸一支笔,说写个程序吧,输入一个字符串然后反序输出.我问输入输出是用函数参数呢还是系统I/O,面试官说随你便,写完了说说各有什么优缺点吧.当时我大三,没有参加过AC ...
- -9 逆序输出一个整数的各位数字_计算机基础知识: 信息数字化
计算机.数据与信息 无符号位数的表示 (一).四种常用的数制及它们之间的相互转换: 进制 基数 基数个数 权 进数规律 十进制 0.1.2.3.4.5.6.7.8.9 10 10i 逢十进一 二进制 ...
- 单链表的前K个的逆序输出
单链表逆序输出也是常被面试官问到题算法题,所以自己就总结了一下,在此贴出算法,与小伙伴们相互交流. 首先要有三个指针,前两个分别指向首节点,首节点的下一个节点,第三个是临时指针,是为了储存首节点的下一 ...
最新文章
- 当我们在讨论奢侈品行业时,人工智能可以做什么?
- 爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
- Codeforces Round #470 (rated, Div. 2 C. Producing Snow(思维)
- 打散算法的三种解决方案及其选型场景
- 要学DOT NET了
- [转载]项目风险管理七种武器-霸王枪
- 详解Modbus通信协议---清晰易懂
- git 上传了一个非常大的文件,删除文件
- MyBatis执行原理图
- 程序员35岁之后的职业发展
- 20190905层析分析法matlab,未通过一致性检验时,重新构造判断矩阵再计算
- COLMAP: Structure-from-Motion Revisited 论文解读
- WIFI转串口无线传输模块,个人体会
- 【经典控制理论】| 自动控制原理知识点概要(上)
- python毕业设计 基于django框架个人博客系统毕业设计设计与实现
- 【ZCMU1411】喜闻乐见的a+b(20进制a+b)
- suspicious number
- php编程输出心形图案_PHP纯代码生成心形图片并自定义文字
- 【中国是部金融史-读后感】
- linux服务器测试软件,linux服务器常用测试工具及命令