问题 A: 二叉排序树
时间限制: 1 Sec 内存限制: 32 MB
献花: 46 解决: 30
[献花][花圈][TK题库]
题目描述
输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。

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

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

样例输入
1
2
2
8 15
4
21 10 5 39
样例输出
2
2
2
8 15
8 15
15 8
21 10 5 39
5 10 21 39
5 10 39 21

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>using namespace std;
const int MaxN = 110;typedef struct tnode
{int v;struct tnode * lchild;struct tnode * rchild;
}TNode;void Insert(TNode *&Root,int val)
{if(!Root){Root = new TNode;Root->v = val;Root->lchild = Root->rchild = NULL;return;}if(Root->v == val) return;else if(Root->v > val)return Insert(Root->lchild,val);elsereturn Insert(Root->rchild,val);
}TNode * CreateTree(int Data[],int n)
{TNode * root = NULL;for(int i=0;i<n;++i)Insert(root,Data[i]);return root;
}void DestroyTree(TNode * &Root)
{if(!Root)return;DestroyTree(Root->lchild);DestroyTree(Root->rchild);delete Root;Root = NULL;
}void PreOrder(TNode * root,int &curn,int n)
{if(!root) return;cout << root->v;++curn;if(curn != n) cout << " ";PreOrder(root->lchild,curn,n);PreOrder(root->rchild,curn,n);
}void InOrder(TNode * root,int &curn,int n)
{if(!root) return;InOrder(root->lchild,curn,n);cout << root->v;++curn;if(curn != n) cout << " ";InOrder(root->rchild,curn,n);
}void PostOrder(TNode * root,int &curn,int n)
{if(!root) return;PostOrder(root->lchild,curn,n);PostOrder(root->rchild,curn,n);cout << root->v;++curn;if(curn != n) cout << " ";
}int main()
{
#ifdef _Debug
freopen("data.txt","r+",stdin);
#endifstd::ios::sync_with_stdio(false);int n,seq[MaxN],tmp;while(cin >> n){for(int i=0;i<n;++i)cin >> seq[i];TNode *root = CreateTree(seq,n);tmp = 0;PreOrder(root,tmp,n);cout << endl;tmp = 0;InOrder(root,tmp,n);cout<<endl;tmp = 0;PostOrder(root,tmp,n);cout <<endl;DestroyTree(root);}return 0;
}/**************************************************************Problem: 1919User: SharwenLanguage: C++Result: 升仙Time:1 msMemory:1696 kb
****************************************************************/

1919 Problem A 二叉排序树相关推荐

  1. 1919 Problem A 二叉排序树

    问题 A: 二叉排序树 时间限制: 1 Sec  内存限制: 32 MB 提交: 298  解决: 126 [提交][状态][讨论版][命题人:外部导入] 题目描述 输入一系列整数,建立二叉排序数,并 ...

  2. codeup墓地目录(算法笔记习题刷题笔记)

    在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门模拟->简单模拟 ...

  3. codeup墓地目录

    代码内容为原创C++ 在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门 ...

  4. sdut 二叉排序树

    二叉排序树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 二叉排序树的定义 ...

  5. HDU1273漫步森林

    漫步森林 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. 二叉排序树(完整代码)

    目录 二叉排序树 1.二叉排序树(代码) P1087 FBI树 (建树) HDU 4707 Pet 二叉排序树 先序遍历:根->左->右 中序遍历:左->根->右 后序遍历:左 ...

  7. 二叉排序树、AVL树、红黑树、B树、B+树、Hash树、

    二叉排序树 1.基本应用 二叉排序树也称为也叫二叉查找树,二叉搜索树, BST. 满足二叉查找树的一般性质,是指一棵空树具有如下性质: 对于二叉树中的任何一个非叶子节点,要求左子节点比当前节点值小,右 ...

  8. Problem B: 排序二叉树

    Problem Description 根据输入的int数组建立一棵二叉排序树,然后根据指令进行相应的操作.指令只有两种Insert x, Delete x.不考虑空树的情况. Insert x 指令 ...

  9. hdu3999二叉排序树

    https://vjudge.net/problem/22959/origin 题意及思路: 构建二叉排序树 并输出它的前序遍历: #include <stdio.h> #include ...

最新文章

  1. Qt Creator用户界面
  2. for相关 java_Java学习之for循环相关知识梳理
  3. Java线程池 / Executor / Callable / Future
  4. LeetCode7.反转整数
  5. 数据分析的5层解读,报表仍是有效的落地实践!
  6. Andrew Ng 如何重拾梦想
  7. wxpython记录生词GUI程序
  8. win10局域网文件服务器,win10 局域网文件共享
  9. spring事务REQUIRED REQUIRES_NEW区别
  10. Dojo1.11官方教程文档翻译(3.4)Dojo特效
  11. Android EditText 获得焦点不显示光标
  12. 深入理解Java虚拟机读书笔记之垃圾收集器与内存分配策略
  13. 微博+java平台_【基于JavaEE的微博平台设计最终版材料】
  14. 大促中为什么需要可视化监控大屏?
  15. 罗云彬:实现水波特效的代码例子
  16. 有空就学学的实例分割1——Tensorflow2搭建Mask R-CNN实例分割平台
  17. 如何更改计算机属性里面的配置文件,电脑中如何设置共享文件夹的属性防止被删除...
  18. 印象中的tcp?你可能一直都理解错了|开发者的必备技能
  19. jmeter 阶梯式压测
  20. 虚化背景 - 基于镜头模糊滤镜的深度映射

热门文章

  1. 阿里云win2016服务器部署jdk+tomcat填坑
  2. skylake服务器处理器M系列,瞄三大产品线!谈Intel Skylake架构CPU
  3. Windows——插件:动态主题(轻量级 每日自动换壁纸)
  4. 何恺明团队新作ViTDet:用于目标检测的视觉Transformer主干网络
  5. python使用文字识别读取图片文字
  6. uni-app 连接逍遥模拟器 安卓模拟器 不显示 找不到 端口映射
  7. python大数加法、需要ut_对于密钥大小,Python加密数据太长
  8. html5 图片羽化,课题:html5图像羽化(不规则区域羽化,feather,html5羽化)
  9. 在window系统上对web项目进行safair兼容测试
  10. 企业上云规划与云原生环境设计