HDU 1622
http://acm.hdu.edu.cn/showproblem.php?pid=1622
白书上6.3.2二叉树层次遍历的例题,层次遍历用bfs,建立二叉树,很基础的题目
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <queue> using namespace std; struct node{
int vis,v;
node *l,*r;
}; node *root; node* newnode(){
node *u=new node;
if(u!=NULL){
u->vis=;
u->l=u->r=NULL;
}
return u;
} int failed; void addnode(int v,char* s){
int len=strlen(s);
node* u=root;
for(int i=;i<len;i++){
if(s[i]=='L'){
if(u->l==NULL)u->l=newnode();
u=u->l;
}
else if(s[i]=='R'){
if(u->r==NULL)u->r=newnode();
u=u->r;
}
}
if(u->vis)failed=;
u->v=v;
u->vis=;
} char s[]; void remove_tree(node* u){
if(u==NULL)return;
remove_tree(u->l);
remove_tree(u->r);
delete u;
} int input(){
failed=;
remove_tree(root);
root=newnode();
while(){
if(scanf("%s",s)==EOF)return ;
if(!strcmp(s,"()"))break;
int v;
sscanf(&s[],"%d",&v);
addnode(v,strchr(s,',')+);
}
return ;
} int st,ans[]; int bfs(){
queue <node*> q;
q.push(root);
while(!q.empty()){
node* u=q.front();
q.pop();
if(u->vis==)return ;
ans[st++]=u->v;
if(u->l!=NULL)q.push(u->l);
if(u->r!=NULL)q.push(u->r);
}
return ;
} int main(){
while(input()){
if(failed)puts("not complete");
else{
st=;
if(!bfs())puts("not complete");
else{
for(int i=;i<st;i++){
if(!i)
printf("%d",ans[i]);
else
printf(" %d",ans[i]);
}
putchar('\n');
}
}
}
return ;
}
HDU 1622的更多相关文章
- hdu 1622 Trees on the level
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1622 小白书上的题... #include<algorithm> #include< ...
- hdu 1622 Trees on the level(二叉树的层次遍历)
题目链接:https://vjudge.net/contest/209862#problem/B 题目大意: Trees on the level Time Limit: 2000/1000 MS ( ...
- 【二叉树】hdu 1622 Trees on the level
[题意] 给定一棵树每个结点的权重和路径(路径用LR串表示),输出这棵树的层次遍历 [思路] 注意输入输出,sscanf用来格式化地截取需要的数据,strchr来在字符串中查找字符的位置 [Accep ...
- HDU - 1622 用到了层次遍历
题意: 给出一些字符串,由(,)包着,表示一个节点,逗号前面是节点的值,后面是节点从根节点走向自己位置的路线,输入以( )结尾,如果这组数据可以构成一个完整的树,输出层次遍历结果,否则输出not co ...
- hdu 1704 (Floyd 传递闭包)
Rank Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDU 5643 King's Game 打表
King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
随机推荐
- SAP资产变动明细
*&---------------------------------------------------------------------* *& Report ZFIR027 * ...
- HTML第二部分 CSS样式表
CSS(cascading style sheets,层叠样式表),作用是美化HTML网页. /*注释*/ 注释语法 2.1 样式表的基本概念 2.1.1样式表的分类 1.内联样式表 和HTML联 ...
- long long 与 _int64
本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五种编译器分别是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Micr ...
- PHP获取当前页面的URL作为参数以供下一层的页面可以返回上一层页面
1.基础url的获取 #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST'].&quo ...
- Introduction to Windows 8: The Definitive Guide for Developer
<Windows 8应用开发权威指南>介绍 Introduction to Windows 8: The Definitive Guide for Developer 一.封面设计要求及文 ...
- [转]网络时间的那些事及 ntpq 详解
Gentoo(也许其他发行版也是?)中 "ntpq -p" 的 man page 只有简短的描述:“打印出该服务器已知的节点列表和它们的状态概要信息.” 我还没见到关于这个命令的说 ...
- Octopus系列之SQLite3常用命令
导出脚本F:\B2CShop>sqlite3 B2CDB.db .dump > test.sql 导入脚本F:\B2CShop>sqlite3 B2CDB.db < B2C-S ...
- Xwindow 连接 RHEL 5
cd /etc/gdm/custom.conf ----------------------------------------- [security] AllowRemoteRoot=true [x ...
- discuz判断用户登录
在include/common.inc.php 文件.程序开始先判断是否有cookie存到了sid值,然后解密cookie['auth']这个用户登录状态加密字符串,如果解密出来有uid值表示 ...
- ios下input focus弹出软键盘造成fixed元素位置移位
正常状态下 input focus软键盘弹出时 问题描述: 头部结构fixed,滚动到下部内容区域,input.textarea等focus弹出软键盘时,头部位置偏移被居中(该问题ios7 beta3 ...