二叉排序树

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss

Problem Description

二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 今天我们要判断两序列是否为同一二叉排序树

Input

开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉排序树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉排序树。(数据保证不会有空树)

Output

Example Input

2
123456789
987654321
432156789
0

Example Output

NO
NO
#include<iostream>
#include<string.h>
using namespace std;
char c[100],d[100];
typedef struct node
{char data;struct node *lchild,*rchild;
}node,*itree;
int o=0,e=0;
void insert(itree &t1,char key)
{if(t1==NULL){t1=new node;t1->lchild=t1->rchild=NULL;t1->data=key;return ;}else{if(key<t1->data)insert(t1->lchild,key);else insert(t1->rchild,key);}
}
void pre_order(itree t)
{if(t!=NULL){c[o++]=t->data;pre_order(t->lchild);pre_order(t->rchild);}
}
void post_order(itree t3)
{if(t3!=NULL){post_order(t3->lchild);post_order(t3->rchild);d[e++]=t3->data;}
}
int main()
{char a[100],b[100];int n,len,i;itree t1;while(cin>>n){if(n==0){break;}t1=NULL;cin>>a;len=strlen(a);for(i=0;i<len;i++){insert(t1,a[i]);}pre_order(t1);c[o]='\0';post_order(t1);d[e]='\0';for(i=0;i<n;i++){cin>>b;if(strcmp(a,b)==0)cout<<"YES"<<endl;else if(strcmp(b,c)==0)cout<<"YES"<<endl;else if(strcmp(b,d)==0)cout<<"YES"<<endl;elsecout<<"NO"<<endl;}}return 0;
}

sdut 二叉排序树相关推荐

  1. 数据结构实验之查找一:二叉排序树 (SDUT 3373)

    二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),也称二叉搜索树. #include <stdio.h> #include <s ...

  2. 数据结构(8-3)二叉排序树(查找、插入删除)

    目录 一.基础理论 1.特点: 2.结构: 二.查找 三.插入 四.删除 1.被删除的结点D是叶子结点 2.被删除的结点D仅有一个孩子 2-1.删除结点14(有左无右) 2-2.删除结点 10 (有右 ...

  3. 二叉排序树的相关操作

    #include <IOSTREAM.H> #include <STDLIB.H> //二叉树的生成和释放 typedef struct Node {int data;stru ...

  4. sdut 2401 最大矩形面积

    1http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401 /* 2 最大矩形面积,把边界点加上 ...

  5. sdut AOE网上的关键路径(spfa+前向星)

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2498&cid=1304 题目描述 一个无环的有向图称为无环图(Directed Acyc ...

  6. 树和二叉树(四种遍历,建树)详解+二叉排序树(包含图像和相关习题)

    目录 树和二叉树 一.树 2.有序树和无序树 3.森林 4.树的基本性质 二.二叉树的概念 (1)二叉树的编号 1.二叉树和度为2的有序树的区别: 2.满二叉树 3.完全二叉树: 4.平衡二叉树: 5 ...

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

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

  8. 二分查找与二叉排序树

    文章目录 二分查找与二叉排序树 二分查找 1. 二分查找 2. 区间查找 3. 基于旋转数组的二分查找 二叉查找(排序)树 1. 插入节点 2. 查找节点 二分查找与二叉排序树 二分查找 1. 二分查 ...

  9. 平衡二叉排序树的创建和实现调整过程

    1.已知一棵二叉树的先序序列为:abcedfgh,中序序列为:bcedaghf,画出该二叉树,并给出其后序序列. 2.已知一组关键字为(15,11,22,5,66,58,36,10,38),按照该元素 ...

最新文章

  1. oracle修改时区无效,Oracle 时区问题
  2. 《少年先疯队》第九次团队作业:Beta冲刺第二天
  3. Visual Basic 2005 - 如何将色彩字符串转换成 Color 结构
  4. ASP.NET 2.0中轻松实现网站换肤
  5. 算法—详细讲解单向循环链表的实现(python)
  6. 添加github ssh 公钥
  7. 中国计算机考试区别及求职的相关思考
  8. nginx+memcache实现页面缓存应用
  9. 8.0服务器维护时间,魔兽世界8.0服务器维护把玩家心态搞崩 网友:喜闻乐见
  10. 不确定性原理的前世今生 · 数学篇(一)
  11. php把amr转换成mp3,amr怎么转换成mp3 amr文件转换mp3格式
  12. 餐饮点餐外卖小程序源码(外卖订餐系统源码)
  13. android备份recovery,一键备份手机原版Recovery 刷机无鸭梨
  14. db4o and sematicweb
  15. 百度导航怎么不显示服务器,win7系统百度首页导航不见了怎么办
  16. 2017下半年网络工程师考试报名方式
  17. 民族学类毕业论文文献有哪些?
  18. 计算机网络 - ECMAScript和Javascript、jscript关系
  19. 深拷贝和浅拷贝的区别(必须掌握)
  20. Debian etch 基本系统 initial ram disk 的分析

热门文章

  1. flutter天气_牛笔!自己用Flutter撸一个天气APP
  2. JAVA入门级教学之(方法-调用-5)
  3. python pdf转txt保留全部信息_Python 将pdf转换成txt(不处理图片)
  4. Java学习的5个阶段,助大家步步攀升
  5. 软件项目周报模板_一份高质量的职场工作周报,要这样写
  6. java if else重构_java – 如何重构这个有多个if / else语句的方法
  7. python 降维 聚类_比PCA降维更高级——(R/Python)t-SNE聚类算法实践指南
  8. 安卓软件错误log_Android编程实现捕获程序异常退出时的错误log信息功能详解
  9. python设置文件编码_python批量修改文件编码格式的方法
  10. leetcode41 --- firstMissingPositive