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 ...
随机推荐
- 《JavaScript权威指南》读书笔记(四)
日期:2015-12-06 事件传播:1.捕捉阶段2.运行阶段3.起泡阶段cookie和客户端持久性::HTML5引入了web应用缓存.LocalStorage.SessionStorage:使用XM ...
- 线性渐变--linear-gradient
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> < ...
- 如何为Kafka集群选择合适的Partitions数量
转载:http://blog.csdn.net/odailidong/article/details/52571901 这是许多kafka使用者经常会问到的一个问题.本文的目的是介绍与本问题相关的一些 ...
- 在Web中如何使用Windows控件(ActiveX)[转]
最近做的一个Web项目,需要在网页中播放摄像头采集的实时视频,我们已经有了播放视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX. 1.将.Ne ...
- HDU 1688 Sightseeing
题目链接:Sightseeing 题意:求最短路和比最短路长度+1的所有路径条数. 附代码:用数组记录最短和次短路径的长度和条数,一次更新,直到没有边可以更新. #include <stdio. ...
- uva -- 10766
一开始我感觉是模板题 是不想写的 后来发现我的模板上没有 就敲了一遍 可以忽略这句屁话 在信息学竞赛中,有关生成树的最优化问题如最小生成树等是我们经常遇到的,而对生成树的计数及其相关问题则少 ...
- Jmeter java.lang.OutOfMemoryError: GC overhead limit exceeded
使用这个jmeter工具测试时,遇到这么个gc错误,网上找到了解决方案.原因是jmeter默认分配内存的参数很小,好像是256M吧.故而解决方法,就是增加内存: set HEAP=-Xms4g -Xm ...
- HandleErrorAttribute 特性使用
public class EwHandleErrorAttribute : HandleErrorAttribute { public override void OnException(Except ...
- Python的排序
1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I' ...
- bitset常用函数用法记录 (转载)
有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值.位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法.标准库提供了bitset类使得处理位集合更容易一些.要使 ...