HDU3791二叉搜索树(二叉树)
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。
NO
#include<cstdio>
#include<string.h>
#include<cmath>
using namespace std;
const int maxn=+;
char S[+],s[+],Tree[maxn],tree[maxn];
//建立原始二叉树
void BuildTree(char c,int i)
{
if(Tree[i]=='#')Tree[i]=c;
else
{
if(c<Tree[i])BuildTree(c,*i);
if(c>Tree[i])BuildTree(c,*i+);
}
}
//建立判断二叉树
void Buildtree(char c,int i)
{
if(tree[i]=='#')tree[i]=c;
else
{
if(c<tree[i])Buildtree(c,*i);
if(c>tree[i])Buildtree(c,*i+);
}
}
int main()
{
int n;
while(scanf("%d",&n)==&&n)
{
//输入原始数组
scanf("%s",&S);
int Len=strlen(S);
//建原始树
memset(Tree,'#',sizeof(Tree));
for(int i=;i<Len;i++)
{
BuildTree(S[i],);
}
while(n--)
{
//输入判断树组
scanf("%s",&s);
int len=strlen(s);
if(len!=Len)printf("NO\n");
else
{
//建判断树
memset(tree,'#',sizeof(tree));
for(int i=;i<len;i++)
{
Buildtree(s[i],);
}
int res=;
for(int i=;i<maxn;i++)
{
if(tree[i]!=Tree[i])
{
printf("NO\n");
res=;
break;
}
}
if(res==)printf("YES\n");
}
}
}
return ;
}
HDU3791二叉搜索树(二叉树)的更多相关文章
- 二叉搜索树 & 二叉树 & 遍历方法
二叉搜索树 & 二叉树 & 遍历方法 二叉搜索树 BST / binary search tree https://en.wikipedia.org/wiki/Binary_searc ...
- hdu3791二叉搜索树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3791 题意:给定一个n(多组,n为0时结束),给一个串和n个串,分别判断n个串按序列构建的二叉搜索树和 ...
- 数据结构-二叉搜索树的js实现
一.树的相关概念 1.基本概念 子树 一个子树由一个节点和它的后代构成. 节点的度 节点所拥有的子树的个数. 树的度 树中各节点度的最大值 节点的深度 节点的深度等于祖先节点的数量 树的高度 树的高度 ...
- javascript实现二叉搜索树
在使用javascript实现基本的数据结构中,练习了好几周,对基本的数据结构如 栈.队列.链表.集合.哈希表.树.图等内容进行了总结并且写了笔记和代码. 在 github中可以看到 点击查看,可以 ...
- [数据结构]——二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)及其衍生算法
二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现 ...
- PAT树_层序遍历叶节点、中序建树后序输出、AVL树的根、二叉树路径存在性判定、奇妙的完全二叉搜索树、最小堆路径、文件路由
03-树1. List Leaves (25) Given a tree, you are supposed to list all the leaves in the order of top do ...
- 树&二叉树&二叉搜索树
树&二叉树 树是由节点和边构成,储存元素的集合.节点分根节点.父节点和子节点的概念. 二叉树binary tree,则加了"二叉"(binary),意思是在树中作区分.每个 ...
- 数据结构-二叉树(应用篇)-之二叉搜索树 C和C++的实现
一.概念 二叉搜索树(Binary Sort Tree/Binary Search Tree...),是二叉树的一种特殊扩展.也是一种动态查找表. 在二叉搜索树中,左子树上所有节点的均小于根节点,右子 ...
- L3-016 二叉搜索树的结构 (30 分) 二叉树
二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值:它的左.右子树也分别 ...
随机推荐
- ProgrammingContestChallengeBook
POJ 1852 Ants POJ 2386 Lake Counting POJ 1979 Red and Black AOJ 0118 Property Distribution AOJ 0333 ...
- 自己写的一个jQuery轮播插件
大概是四月初开始写的,中间停了有一个月吧.这是我在Github的第一个项目.项目地址:https://github.com/linzb93/jquery.slide.js. 轮播应该是最好写的插件了, ...
- nginx服务器上遇到了acces denied,报错是fastCGI只要好好修改配置就行了
猜想: 懵逼 实践: 首先通用的方法,并没有解决问题. 1.修改php-fpm配置文件vim /etc/php-fpm.d/www.confuser = nginx 编辑用户为nginx ...
- samba 开启
1.查询samba服务安装好没 2.安装samba服务 3.增加以下几个条目 4.useradd smbuser 5.在重启中注意的问题 5.详细请查看 http://jingyan.baidu.co ...
- [JS]省市区数据及方法调用
调用方法: function GetProvinceByid(id) { if (id == null || id == undefined || id == "") return ...
- cookie会话技术
会话技术 B/S请求是无状态无记忆的,脚本与脚本之间是没有联系的,导致不能进行连续的业务逻辑 Cookie技术:将会话数据保存在浏览器端 原理:服务器向浏览器发送指令,用来管理存储在浏览器端的cook ...
- Android 不能返回 parent Activity 的问题
使用 ActionBar,开启返回按钮: 在 Activity 的 onCreate 中添加下面代码 getSupportActionBar().setDisplayHomeAsUpEnabled(t ...
- CodeForces 710A King Moves
简单题. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #inclu ...
- ZentaoPHP
1.框架文档http://devel.cnezsoft.com/book/zentaophphelp/about-10.html zentaoPHP二次开发文档http://devel.cnezsof ...
- qmake 小结(Qt 5.4)
FROMS 变量的定义必须在include之前. MOC_DIR UI_DIR RCC_DIR 的定义必须使用绝对路径.