九度OJ题目1201:二叉排序树
来源:互联网 发布:小商店记账软件 编辑:程序博客网 时间:2024/06/10 05:57
纪念一下终于在二叉树上的代码准确率,但还是在给root分配空间的时候忘记要写了 悲剧
还没看到提示要考虑忽略重复元素,这个好解决
- 题目描述:
输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。
- 输入:
输入第一行包括一个整数n(1<=n<=100)。
接下来的一行包括n个整数。
- 输出:
可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。
每种遍历结果输出一行。每行最后一个数据之后有一个空格。
- 样例输入:
51 6 5 9 8
- 样例输出:
1 6 5 9 8 1 5 6 8 9 5 8 9 6 1
- 提示:
输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。
#include<stdio.h>#include<iostream>using namespace std;int n;int a[1004];struct Tree{ int v; Tree * lf; Tree * rt;};Tree *root;void buildtree(Tree *r,int a){ if(a<(r->v)) { if((r->lf) == NULL) { Tree* nr = new Tree(); nr->v = a; r->lf = nr; } else buildtree(r->lf,a); } else if(a>r->v) { if(r->rt == NULL) { Tree* nr = new Tree(); nr->v = a; nr->lf = NULL; nr->rt = NULL; r->rt = nr; } else buildtree(r->rt,a); }}void firstravel(Tree *r){ printf("%d ",r->v); if(r->lf!=NULL) firstravel(r->lf); if(r->rt!=NULL) firstravel(r->rt);}void midtravel(Tree *r){ if(r->lf!=NULL) midtravel(r->lf); printf("%d ",r->v); if(r->rt!=NULL) midtravel(r->rt);}void lastravel(Tree *r){ if(r->lf!=NULL) lastravel(r->lf); if(r->rt!=NULL) lastravel(r->rt); printf("%d ",r->v);}int main(){ while(~scanf("%d",&n)&&n) { root = new Tree();//****切记给根节点分配空间 for(int i = 0 ; i < n ;i++) scanf("%d",&a[i]); root->v = a[0]; for(int i = 1 ; i < n ;i++) { buildtree(root,a[i]); } firstravel(root); printf("\n"); midtravel(root); printf("\n"); lastravel(root); printf("\n"); } return 0;}
0 0
- 九度oj 题目1201:二叉排序树
- 九度OJ题目1201:二叉排序树
- 九度OJ题目1201:二叉排序树
- 【九度OJ】题目1201:二叉排序树 解题报告
- 题目1467:二叉排序树 九度OJ
- 九度oj 题目1467:二叉排序树
- 九度oj 1201:二叉排序树
- 九度OJ 1201 二叉排序树
- 九度OJ-1201-二叉排序树
- 九度OJ - 1201 - 二叉排序树
- 九度OJ-1201-二叉排序树
- 九度OJ 1201 二叉排序树
- 九度题目1201:二叉排序树
- 九度题目1201:二叉排序树
- 九度题目1201:二叉排序树
- 题目1201:二叉排序树 -九度
- 【九度】题目1201:二叉排序树
- 【九度OJ】题目1467:二叉排序树 解题报告
- LDD3学习笔记(1) 写笔记的原因和搭建环境
- POJ 3188暴搜
- 多版本JAVA 共存 JAVA版本升级迁移(windows)
- JNI_NDK调用C语言
- 条款十九:了解临时对象的来源
- 九度OJ题目1201:二叉排序树
- Android本地登录与WebView网页登陆同步问题(cookie同步问题)
- 年终总结
- ros基础
- Hadoop2.0安装包目录结构分析
- C#用NPOI读取excel
- linux安装svn服务端
- leetcode-java-219. Contains Duplicate II
- AndroidStudio在断点时打印日志