九度题目1201:二叉排序树
2014-03-19 21:13
435 查看
题目描述:
输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。
输入:
输入第一行包括一个整数n(1<=n<=100)。
接下来的一行包括n个整数。
输出:
可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。
每种遍历结果输出一行。每行最后一个数据之后有一个空格。
样例输入:
样例输出:
提示:
输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。
说明: 每行输出后有一个空格,这样处理起来就可用递归很方便的说
输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。
输入:
输入第一行包括一个整数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<stdio.h> struct Node { int val; Node* left; Node* right; Node(int a):val(a),left(NULL),right(NULL){}; }; void pre(Node *root) { if(NULL==root) return; printf("%d ",root->val); pre(root->left); pre(root->right); } void aft(Node *root) { if(NULL==root) return; aft(root->left); aft(root->right); printf("%d ",root->val); } void mid(Node *root) { if(NULL==root) return; mid(root->left); printf("%d ",root->val); mid(root->right); } void dele(Node *root) { if(NULL==root) return; dele(root->left); dele(root->right); delete(root); } int main() { int n; int val; Node *root; Node *p; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) { scanf("%d",&val); if(i==0) { root = new Node(val); continue; } p = root; while(1) { if(val==p->val) break; if(val>p->val) { if(p->right==NULL) { p->right = new Node(val); break; } else { p = p->right; continue; } } else { if(p->left==NULL) { p->left = new Node(val); break; } else { p = p->left; continue; } } } } pre(root); printf("\n"); mid(root); printf("\n"); aft(root); printf("\n"); dele(root); } return 0; }
相关文章推荐
- Android学习之——(3)项目中的WebService返回数据处理学习
- Kick off
- linux下的DNS解析之原理篇
- 蓝桥杯:马虎的算式(非递归)
- Android Dialog
- TextView单击链接弹出Activity
- 单片机程序调试黑皮书
- jquery 代码分析
- HDU3292 No more tricks, Mr Nanguo滥竽充数 特殊不定方程 + 矩阵应用
- getchar与getch和getche的区别
- qq2013聊天记录在哪个文件夹?QQ2013聊天记录存放位置
- HDU 3065 AC 自动机再来。。 病毒持续侵袭中
- ui中文显示乱码
- C++内存管理详解【转载】
- C++操作Word学习笔记(一)
- C++操作Excel学习笔记(一)
- C++操作Excel学习笔记(二)
- C++操作Excel学习笔记(三)
- C++操作Word学习笔记(二)
- C++操作Word学习笔记(三)