Trees On the Level


竟然还有 (,) () 这种东西!!!

#include <cstdio>
#include <cstring>
#include <cctype>
const int MAXN=256+1;
char s[MAXN];
struct Node {int val;bool have;Node *left,*right;Node(int v=0,Node* l=NULL,Node* r=NULL):val(v),left(l),right(r) {have=false;}
}*root,*q[MAXN];
int front=0,rear=0;
void printAns(Node* root,int ok) {if(ok==0) {printf("not complete\n");return;}front=rear=0;q[rear++]=root;while(front<rear) {Node *u=q[front++];if(u->have==false) {ok=0;break;}if(u->left!=NULL)q[rear++]=u->left;if(u->right!=NULL)q[rear++]=u->right;}if(ok==0) {printf("not complete\n");return;}front=0;printf("%d",q[front++]->val);while(front<rear)printf(" %d",q[front++]->val);printf("\n");
}
Node* newNode() {return new Node(0,NULL,NULL);
}
void insert(int val,char s[],int& ok) {Node *u=root;int m=strlen(s);for(int i=0; i<m; i++) {if(s[i]=='L') {if(u->left==NULL)u->left=newNode();u=u->left;}if(s[i]=='R') {if(u->right==NULL)u->right=newNode();u=u->right;}}if(u->have==true)ok=0;else {u->val=val;u->have=true;}return;
}
void del(Node* u) {if(u->left!=NULL)del(u->left);if(u->right!=NULL)del(u->right);delete u;
}
int main() {int ok=1,val=0;root=newNode();while(scanf("%s",s)==1) {if(!strcmp(s,"()")) {printAns(root,ok);ok=1;del(root);root=newNode();memset(s,0,sizeof(s));memset(q,0,sizeof(q));} else {if(!isdigit(s[1]))ok=0;else sscanf(s+1,"%d",&val);int pos=strchr(s,',')-s+1;insert(val,s+pos,ok);}}return 0;
}

2018 年 10 月 30 日,真是一个不幸的日子.

在这一天,我终于把这道题 A 掉了,反反复复提交了十多次,终于在今天,我明白了为什么错:

UVa 坑爹输出格式!!!输出文件的结尾必须有一个空行!!!

转载于:https://www.cnblogs.com/Corona09/p/9532141.html

[UVa 122] Trees On the Level相关推荐

  1. 【日常学习】【指针二叉树+BFS】Uva - 122 Trees on the level题解

    作为一个传统型的树盲,不得不把树重新学习一次.通常我是不太喜欢指针的,但这样写下来感觉还能接受. 题目来源是ACM DUKE 1993 Uva 122 杭电也有这道题  这道题目基本是照着ruka抄来 ...

  2. UVA 122 Trees on the level 二叉树 广搜

    题目链接: https://vjudge.net/problem/UVA-122 题目描述: 给你一种二叉树的构造方法, 让你逐层输出二叉树的节点值, 如果不能够则输出"not comple ...

  3. UVa 122 Trees on the level

    题意:给出一棵二叉树,按照从上到下,从左到右输出所有节点的值,如果有一个节点没有赋值或者被多次赋值则输出not complete 看的紫书照着敲的= = 先要将输入进来的值建成一颗二叉树(定义一个二叉 ...

  4. 122 - Trees on the level(模拟内存池解法)

    PS:题目和动态分配内存解法,可以查看:122 - Trees on the level(动态分配空间解法) PS:模拟内存池的原理简单的说就是先初始化一个空闲队列,当需要资源时,直接从队首获取,当资 ...

  5. UVA122 树的层次遍历 Trees on the level(两种方法详解)

    UVA122 树的层次遍历 Trees on the level 输入: (11,LL) (7,LLL) (8,R) (5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ...

  6. 【可运行,刘汝佳代码】Trees on the level UVA - 122

    立志用最少的代码做最高效的表达 Trees are fundamental in many branches of computer science (Pun definitely intended) ...

  7. Trees on the level UVA - 122 (二叉树的层次遍历)

    题目链接:https://vjudge.net/problem/UVA-122 题目大意:输入一颗二叉树,你的任务是按从上到下,从左到右的顺序输出各个结点的值.每个结点都按照从根节点到它的移动序列给出 ...

  8. UVA 10214 Trees in a Wood

    https://vjudge.net/problem/UVA-10214 题意:你站在原点,每个坐标位置有一棵高度相同的树,问能看到多少棵树 ans=Σ gcd(x,y)=1 欧拉函数搞搞 #incl ...

  9. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

最新文章

  1. 深度学习最常用的10个激活函数
  2. 网站优化中站点为什么会出现404页面?
  3. java小程序连接数据库_Java程序连接各种数据库的方法
  4. oracle 恢复 跳过 表空间,Oracle表空间恢复
  5. 向量点积(Dot Product)
  6. 飞鸽传书 参与了公司的程序设计比赛
  7. Python selenium 去掉“隐藏正受到自动测试软件的控制”
  8. redhat 5.4 yum配置
  9. 产品经理适合当项目经理吗?
  10. easyui-treegrid的案例
  11. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_07 缓冲流_1_缓冲流的原理...
  12. 第13章 集成学习和随机森林 学习笔记中 oob
  13. dnf外挂java代码,使用Java实现简朴的斗地主案例_rust辅助,绝地求生卡盟
  14. Android使用google breakpad之minidump_stackwalk
  15. 二叉树叶子结点个数——C++
  16. rpg学院 unity_使用Unity开发RPG游戏完整指南(中)
  17. 腾讯云人脸支付常见问题和解答,以及腾讯云人脸支付相关介绍
  18. 离散求边缘密度_求一把能退烧的机械键盘?——机械键盘购买“指北”
  19. 1209-纯碱跌8%,菜粕大涨4%
  20. 【小林课堂】【光学】透镜成像应用

热门文章

  1. 使用Seaborn和Pandas进行数据可视化
  2. 使用Span T 提高C#代码的性能
  3. 100m光纤测速多少正常_光纤收发器的分类知识详解
  4. vue引入全局静态变量_vue-cli4 全面配置(持续更新)
  5. vb6 word 2002 合并单元格_干货来了!最实用的Word表格小技巧!
  6. 2021-08-20 解决layUi 选项卡切换表格大小不匹配问题
  7. python文件移动到文件夹_python – 将文件夹中的文件移动到顶级目录
  8. 用机械硬盘安装linux,HDD 机械硬盘 安装 linux(centos7)
  9. gradle 修改java代码_自定义一个gradle插件动态修改jar包Class文件
  10. java对象名不可以是_java运行一个方法时如何得到该个对象的名字(不是类的名字)....