hdu3791 二叉搜索树
来源:互联网 发布:单片机控制220v继电器 编辑:程序博客网 时间:2024/05/20 21:19
判断两个序列能不能组成一样的二叉树,首先把树建起来,左结点比根小,右结点比根大
然后对它进行遍历,看能不能得到相同的结果
遍历分为前序中序后序就不多说啦
#include<stdio.h>#include<string.h>#include<stdlib.h>#define Null 0typedef struct Tree{ Tree *right,*left; int value;}Tree;Tree *root;int count,cnt,a[12],b[12];Tree *create(int x){ Tree *t=(Tree*)malloc(sizeof(Tree)); t->left=0; t->right=0; t->value=x; return t;}Tree *insert(Tree *s,int x){ Tree *t; if(s==Null) { t=create(x); s=t; } else { if(s->value>=x)s->left=insert(s->left,x); else s->right=insert(s->right,x); } return s;}void serch(Tree *root){ if(root!=Null) { b[count++]=root->value; serch(root->left); serch(root->right); }}int main(){ int n; char str[12]; while(scanf("%d",&n)!=EOF) { root=Null; count=0; if(n==0)break; scanf("%s",str); int len=strlen(str); for(int i=0;i<len;i++) { int tmp=str[i]-48; root=insert(root,tmp); } serch(root); memcpy(a,b,sizeof(b)); while(n--) { count=0; scanf("%s",str); root=Null; for(int i=0;i<len;i++) { int tmp=str[i]-48; printf("%d",str[i]); root=insert(root,tmp); } serch(root); cnt=0; for(int i=0;i<len;i++) if(a[i]!=b[i]) { printf("NO\n"); break; } else cnt++; if(cnt>=len) printf("YES\n"); } }}
0 0
- hdu3791二叉搜索树
- HDU3791:二叉搜索树
- hdu3791 二叉搜索树
- hdu3791 二叉搜索树
- HDU3791 二叉搜索树
- HDU3791-二叉搜索树
- 二叉搜索树hdu3791
- hdu3791--二叉搜索树
- 【二叉搜索数】HDU3791二叉搜索树
- Hdu3791 - 二叉搜索树 - 二叉树
- hdu3791(二叉搜索树构造)
- HDU3791 二叉搜索树(构建二叉搜索树模板)
- 首道二叉树 HDU3791:二叉搜索树
- hdu3791 二叉搜索树(BST的建立)
- 二叉排序树:HDU3791-二叉搜索树(用指针建立二叉排序树)
- 浙大计算机研究生复试上机考试(2010)——二叉搜索树(hdu3791)
- HDU3791
- HDU3791
- LeetCode——Unique Binary Search Trees
- 数据库连接
- D. Vessels
- [Django]几种重定向的方式
- ADO.NET之6-使用Command修改数据库中的数据---ShinePans
- hdu3791 二叉搜索树
- Bluetooth LMP介绍
- 比较不错的log4j配置文件
- 常用的HTML标签总结
- 在Windows下编译FFmpeg详细说明
- 矩阵类---笔记
- 常用HTML标签总结2
- 常用的HTML标签总结3
- 组件通信实例解析