二叉排序树的实现和查找

1000(ms)
10000(kb)
2782 / 6301
按照给定的关键字集合,建立二叉排序树。在建立的二叉排序树上查找指定的关键字,查找成功,输出找到该关键字比较的次数;查找不成功,输出-1.

输入

关键字个数n;
关键字集合;
要查找的关键字;

输出

查找成功输出比较的次数,否则输出-1。

样例输入

12
25 18 46 2 53 39 32 4 74 67 60 11
74

样例输出

4
 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cstdio>
typedef int Datetype;
using namespace std;
int x; typedef struct link{
Datetype date;
struct link *lchild;
struct link *rchild;
}tree; void creat(tree *&L, int arr[] ,int l,int r)
{
if(l>r)
{
L=NULL;
return ;
}
int s=(l+r)>>;
L=new tree;
L->date=arr[s];
creat(L->lchild,arr,l,s-);
creat(L->rchild,arr,s+,r);
} void display(tree *&L)
{
if(L!=NULL)
{
cout<<L->date<<" ";
display(L->lchild);
display(L->rchild);
}
} void delet(tree *&L)
{
if(L!=NULL)
{
delet(L->lchild);
delet(L->rchild);
delete(L);
}
} void find(tree *&L, int a)
{
if(L!=NULL)
{
x++;
if(a>L->date)
find(L->rchild,a);
else if(a<L->date)
find(L->lchild,a);
else
return ;
}
if(L==NULL)
x=;
} int main()
{
int arr[];
int n,a;
tree *L;
cin>>n;
for(int i=;i<n;i++)
{
cin>>arr[i];
}
sort(arr,arr+n);
cin>>a;
creat(L,arr,,n-);
// display(L);
find(L,a);
if(x)
cout<<x;
else
cout<<"-1";
delet(L);
return ;
}

swust oj 1011的更多相关文章

  1. [Swust OJ 404]--最小代价树(动态规划)

    题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535   Des ...

  2. [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)

    题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...

  3. SWUST OJ NBA Finals(0649)

    NBA Finals(0649) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 404 Accepted: 128   Descri ...

  4. [Swust OJ 1023]--Escape(带点其他状态的BFS)

    解题思路:http://acm.swust.edu.cn/problem/1023/ Time limit(ms): 5000 Memory limit(kb): 65535     Descript ...

  5. [Swust OJ 1125]--又见GCD(数论,素数表存贮因子)

    题目链接:http://acm.swust.edu.cn/problem/1125/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  6. [Swust OJ 1126]--神奇的矩阵(BFS,预处理,打表)

    题目链接:http://acm.swust.edu.cn/problem/1126/ Time limit(ms): 1000 Memory limit(kb): 65535 上一周里,患有XX症的哈 ...

  7. [Swust OJ 1026]--Egg pain's hzf

      题目链接:http://acm.swust.edu.cn/problem/1026/     Time limit(ms): 3000 Memory limit(kb): 65535   hzf ...

  8. [九度OJ]1011.最大连续子序列

    原题链接:http://ac.jobdu.com/problem.php?pid=1011 题目描述:     给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ N ...

  9. [Swust OJ 1139]--Coin-row problem

    题目链接:  http://acm.swust.edu.cn/contest/0226/problem/1139/ There is a row of n coins whose values are ...

随机推荐

  1. dos.orm的事务处理

    dos.orm也包含事务处理,没有太多封装,这里有几个简单的示例代码. using (DbTrans trans = DbSession.Default.BeginTransaction()) { D ...

  2. Python2.7与3.6的一些区别

    2.7实现了一部分3的功能, 更早版本可能会稍稍涉及一点 首先是关键字的差别 python3.6 import keyword print(keyword.kwlist) ['False', 'Non ...

  3. hibernate核心类及常用方法

    Configuration configure = new Configuration().configure(); SessionFactory factory = configure.buildS ...

  4. 【原创】大数据基础之Kudu(3)primary key

    关于kudu的primary key The primary key may not be changed after the table is created. You must drop and ...

  5. goland 文件头自动注释

    1 代码 /** * @Author: ${USER} * @Description: * @File: ${NAME} * @Version: 1.0.0 * @Date: ${DATE} ${TI ...

  6. 常用的user32说明

    函数名称 说明 ActiveKeyboardLayout 激活一个不同的键盘布局,该布局必须先由LoadKeyBoardLayout函数装载AdjustWindowRect 根据希望的用户矩形大小来计 ...

  7. java爬虫实现爬取百度风云榜Top10

    最近在项目中遇到了java和python爬虫进行程序调用和接口对接的问题, 刚开始也是调试了好久才得出点门道. 而后,自己也发现了爬虫的好玩之处,边想着用java来写个爬虫玩玩,虽说是个不起眼的dem ...

  8. linux常用命令及使用技巧(三)

    文件管理与编辑 mkdir创建一个目录 mkdir [选项] 目录名 -m 设置存取权限 -p 可以一次创建多个目录 more命令读取文本文件,灭次显示一屏,并在每屏后暂停 cat命令将文件的内容输出 ...

  9. Java读取证书

    import java.io.FileInputStream; import java.security.Key; import java.security.KeyFactory; import ja ...

  10. PHP7.* AES的加密解密

    之前写过一篇: PHP AES的加密解密-----[弃用] 使用的是php5.*之前的mcrypt_decrypt 函数,该函数已经在php7.1后弃用了,上马的是openssl的openssl_en ...