hdu 5444 Elven Postman(搜索二叉树)
2015-09-14 22:20
330 查看
原题链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5444
题目大意:
测试数据T个。
n个结点。
第一个数为根结点(左边>右边)。
q个询问。
找到对应数值的位置。
左移输出‘W’,右移输出‘E’,为根结点则只输出换行。
代码如下:
http://acm.hdu.edu.cn/showproblem.php?pid=5444
题目大意:
测试数据T个。
n个结点。
第一个数为根结点(左边>右边)。
q个询问。
找到对应数值的位置。
左移输出‘W’,右移输出‘E’,为根结点则只输出换行。
代码如下:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=1000+10; int L ,R ; int pre,root; void find_pos(int x) { if(x>pre) { if(L[pre]==0) { L[pre]=x; return; } pre=L[pre]; find_pos(x); }else{ if(R[pre]==0) { R[pre]=x; return; } pre=R[pre]; find_pos(x); } } int main() { int T; scanf("%d",&T); while(T--) { memset(L,0,sizeof(L)); memset(R,0,sizeof(R)); int n; scanf("%d",&n); int x; scanf("%d",&root); for(int i=1;i<n;i++) { pre=root; scanf("%d",&x); find_pos(x); } int q,ask; scanf("%d",&q); for(int i=0;i<q;i++) { pre=root; scanf("%d",&ask); while(ask!=pre) { if(ask>pre) { pre=L[pre]; printf("%c",'W'); } else{ pre=R[pre]; printf("%c",'E'); } } printf("\n"); } } return 0; }
相关文章推荐
- spark学习笔记总结-spark入门资料精化
- UC/OS II 事件标志组管理(一)
- 互斥锁与条件变量(基于控制输出面试题的思考)
- LeetCode 2 Add Two Numbers
- 黑马程序员——Objective--C笔记之内存管理(二)
- linux系统管理LVM学习记录
- UICollectionView简介
- 心情
- ac指令的简单实现
- 9.性能测试工具Locust的高级使用(二)
- Robolectric 配置
- 关掉mysql中sleep程序
- 【EF】 EF的一些错误和解决办法
- try...catch的使用
- mysql部署到云主机的笔记
- 杭电1173采矿
- LeetCode-Delete Node in a Linked List
- 产品经理的修炼之道
- Android Bluetooth4.0(BLE是Bluetooth Low Energy的简称) 官方API
- OpenGL 第三课 中文