九度OnlineJudge题目1201:二叉排序树
来源:互联网 发布:八音盒音乐制作软件 编辑:程序博客网 时间:2024/05/22 03:02
题目链接:http://ac.jobdu.com/problem.php?pid=1201
- 题目描述:
输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。
- 输入:
输入第一行包括一个整数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
- 提示:
输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。
AC代码:
#include<stdio.h>struct Node{ Node *lchild; Node *rchild; int value;}tree[100];int loc;Node* Creat(){ tree[loc].lchild=tree[loc].rchild=NULL; return &tree[loc++]; }void PreOrder(Node *p){ printf("%d ",p->value); if(p->lchild!=NULL) { PreOrder(p->lchild); } if(p->rchild!=NULL) { PreOrder(p->rchild); } // printf("\n");}void InOrder(Node *p){ if(p->lchild!=NULL) { InOrder(p->lchild); } printf("%d ",p->value); if(p->rchild!=NULL) { InOrder(p->rchild); } //printf("\n");}void PostOrder(Node *p){ if(p->lchild!=NULL) { PostOrder(p->lchild); } if(p->rchild!=NULL) { PostOrder(p->rchild); } printf("%d ",p->value); // }Node* CreatTree(int x,Node* p){ if(p==NULL) { p=Creat(); p->value=x; return p; }else if(x<p->value) { p->lchild=CreatTree(x,p->lchild); }else if(x>p->value) { p->rchild=CreatTree(x,p->rchild); } return p;}int main(){ int n; while(scanf("%d",&n)!=EOF) { loc=0; Node* root=NULL; for(int i=0;i<n;i++) { int x; scanf("%d",&x); root=CreatTree(x,root); } PreOrder(root); printf("\n"); InOrder(root); printf("\n"); PostOrder(root); printf("\n"); } return 0;}
0 0
- 九度OnlineJudge题目1201:二叉排序树
- 九度题目1201:二叉排序树
- 九度题目1201:二叉排序树
- 九度题目1201:二叉排序树
- 题目1201:二叉排序树 -九度
- 【九度】题目1201:二叉排序树
- 九度OnlineJudge题目1113:二叉树
- 九度OnlineJudge题目1176:树查找
- 九度OnlineJudge题目1083:特殊乘法
- 九度OnlineJudge题目1183:守形数
- 九度OnlineJudge题目1064:反序数
- 九度OnlineJudge题目1118:数制转换
- 九度OnlineJudge题目1194:八进制
- 题目 1032 ZOJ 九度OnlineJudge
- 题目 1034 寻找大富翁 九度OnlineJudge
- 九度oj 题目1201:二叉排序树
- 九度OJ题目1201:二叉排序树
- 九度OJ题目1201:二叉排序树
- Oracle PL/SQL异常处理(非预定义错误)
- Ganglia 权威指南-安装Ganglia过程
- 纸张尺寸与开(K)数换算
- java 的 AccessController.doPrivileged使用
- 经典智力题:拿球问题
- 九度OnlineJudge题目1201:二叉排序树
- Android开发中adb命令的常用方法
- java自动装箱拆箱深入剖析
- Java中的多线程(四)之线程的停止
- 95. 二进制数
- C语言里的一些陷阱
- Linux 查看CPU信息、机器型号等硬件信息
- Linux基础之标准输入和输出
- Ubuntu+Nginx+PHP的最简搭建方法