【二叉搜索树】poj 1577 Falling Leaves
2024-08-26 13:21:12
http://poj.org/problem?id=1577
【题意】
有一颗二叉搜索树,每次操作都把二叉搜索树的叶子从左到右揪掉(露出来的父节点就变成了新的叶子结点)
先给出了揪掉的叶子序列(多个字符串)
给出这课二叉搜索树先序遍历的结果
【思路】
最后揪掉的肯定是根,最后揪掉的是最先插入的,倒着建立二叉搜索树就可以。
【AC】
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue> using namespace std;
struct node{
int num;
node *lef;
node *rig;
};
const int maxn=1e3+;
string str[maxn];
int cur; node *work(){
node *rt=(node *)malloc(sizeof(node));
rt->num=str[cur-][]-'A';
rt->lef=NULL;
rt->rig=NULL;
for(int i=cur-;i>=;i--){
int len=str[i].length();
for(int j=;j<len;j++){
node *now=rt;
while(){
if(str[i][j]-'A'<now->num){
if(now->lef) now=now->lef;
else{
node *nd=(node *)malloc(sizeof(node));
nd->num=str[i][j]-'A';
nd->lef=NULL;
nd->rig=NULL;
now->lef=nd;
break;
}
}else{
if(now->rig) now=now->rig;
else{
node *nd=(node *)malloc(sizeof(node));
nd->num=str[i][j]-'A';
nd->lef=NULL;
nd->rig=NULL;
now->rig=nd;
break;
}
}
}
}
}
return rt;
}
void preorder(node *rt){
if(rt==NULL) return;
printf("%c",rt->num+'A');
preorder(rt->lef);
preorder(rt->rig);
free(rt);
}
int main(){
cur=;
while(cin>>str[cur]){
if(str[cur][]=='*'||str[cur][]=='$'){
node *rt=work();
preorder(rt);
puts("");
if(str[cur][]=='$') break;
else cur=;
}else{
cur++;
}
}
return ;
}
最新文章
- iStylePDF安全电子文档解决方案之电子合同在线订立
- easyui中的combobox小知识点~~
- JavaScript探秘系列
- Wmware桥接网络虚拟机无法上网的问题
- ASP.NET 查询客户端请求IP地址
- Android 的Google+平台
- js的几大数据类型
- Ajax请求,跨域小坑
- Java程序性能优化-读书笔记(一) 单例模式
- 小明历险记:规则引擎drools教程一
- DDOS学习笔记(《破坏之王-DDOS攻击与防范深度剖析》)
- jQuery上下滑动内容切换选项卡
- junit+mock+spring-test构建后台单元测试
- python yield用法 (tornado, coroutine)
- Day7--Python--基础数据类型补充,集合,深浅拷贝
- day 9 - 2 函数练习
- 案例情景--在一次Oracle 数据库导出时 EXP-00008;ORA-00904:EXP-00000: oracle不同版本导入导出规则
- 假期训练七(hdu-2845 dp,hdu-1846,2188 巴什博奕)
- maven的pom报plugins缺失的解决方法
- js动态实现时分秒
热门文章
- 【Web应用-FTP】FTP 容量显示说明
- openssl安装介绍
- Linux系统里让vim支持markdown格式的语法高亮
- Python学习日志9月17日 一周总结
- 测试类执行报错:AttributeError: &#39;Testlei&#39; object has no attribute &#39;test_cases&#39; 和data,unpack用法解析
- c++ 各种类型字符串转换
- valgrind测试程序内存泄漏问题
- 2、Task 使用 ContinueWith 而不要使用 Wait
- MySQL插入SQL语句后在phpmyadmin中注释显示乱码
- WinForm各种关闭