sdut oj2482 二叉排序树
来源:互联网 发布:python 字符串替换 编辑:程序博客网 时间:2024/05/22 04:58
题目链接:点击打开链接
二叉排序树
Time Limit: 1000MS Memory limit: 65536K
题目描述
二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 今天我们要判断两序列是否为同一二叉排序树
输入
开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉排序树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉排序树。(数据保证不会有空树)
输出
示例输入
21234567899876543214321567890
示例输出
NONO
提示
代码实现:
#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;struct Tree{ char data; Tree *lchild,*rchild;};char p[110],q[110];int s = 0,r = 0;void Creat(Tree *&T,char n)///(Tree * )(&L)前面是说T是一个指向结构体的指针类型。‘&’在此应该是C++的引用,是函数操作可以改变T。{ ///T是指针 如果不加&的话,函数体内对T赋值就会失败,因为是传的“值”,T不会改变,形参的变化不会传给实参。 if(!T) { T = new Tree; T->lchild = NULL; T->rchild = NULL; T->data = n; return; } else { if(n < T->data) Creat(T->lchild,n); else Creat(T->rchild,n); }}void Preorder(Tree *T){ if(T) { p[s++] = T->data; Preorder(T->lchild); Preorder(T->rchild); }}void Postorder(Tree *T){ if(T) { Postorder(T->lchild); Postorder(T->rchild); q[r++] = T->data; }}int main(){ int n; Tree *T; char a[110],b[110]; while(~scanf("%d",&n)&&n) { T = NULL; scanf("%s",a); int len = strlen(a); for(int i = 0;i < len;i++) Creat(T,a[i]); Preorder(T); p[s] = '\0'; Postorder(T); q[r] = '\0'; for(int i = 0;i < n;i++) { scanf("%s",b); if(strcmp(a,b) == 0) printf("YES\n"); else if(strcmp(b,p) == 0) printf("YES\n"); else if(strcmp(b,q) == 0) printf("YES\n"); else printf("NO\n"); } } return 0;}
0 0
- sdut oj2482 二叉排序树
- OJ2482二叉排序树
- 二叉排序树(oj2482)
- sdut 二叉排序树
- SDUT-二叉排序树
- SDUT 2482 二叉排序树
- SDUT 2482 二叉排序树
- SDUT 2482 二叉排序树
- SDUT 2482 二叉排序树
- SDUT 2482 二叉排序树
- SDUT 2482 二叉排序树
- 二叉排序树 (sdut oj 2482)
- SDUT oj 二叉排序树
- 二叉排序树——SDUT
- <sdut-ACM> 2482二叉排序树
- SDUT-数据结构实验之查找一:二叉排序树
- SDUT 3373 数据结构实验之查找一:二叉排序树
- SDUT 3373 数据结构实验之查找一:二叉排序树
- R语言词云——wordcloud2
- Oracle的SQL语句中如何处理‘&’符号
- 463.Sort Integers-整数排序(入门题)
- Win7环境Python安装BeautifulSoup
- 优化编码习惯,高并发下条件判断范围尽量缩小到需要的地方
- sdut oj2482 二叉排序树
- Deep Convolutional Neural Networks for Microscopy-Based Point of Care Diagnostics 阅读
- Atitit.php nginx页面空白 并返回500的解决
- iOS开发之-收集的不常用却实用的小方法和技巧
- VideoView视频开发
- 清除在使用中的COM口编号
- 自定义View控件详解(一) :Android LayoutInflater原理分析,带你一步步深入了解View
- Leetcode之Unique Paths II
- Linux_Linux命令_nohup_后台挂起进程_一些使用事项