https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1503

这道题错了好多次,一开始我直接是cin>>t,但前面可能还有空格,所以不对。就按照书上的用了fgets(buf[0],maxn,stdin)。

题目的本质就是二叉树的遍历问题,直接运用dfs遍历即可。

 #include<iostream>
#include<cstring>
#include<cctype>
using namespace std; const int maxn = ;
char buf[maxn][maxn];
int n; void dfs(int r, int i)
{
cout << buf[r][i];
cout << "(";
if (r + <n && buf[r + ][i] == '|')
{
int k = i;
while (k - >= && buf[r + ][k - ] == '-') k--;
while (buf[r + ][k] == '-' && buf[r+][k]!='\0')
{
if (!isspace(buf[r + ][k])) dfs(r + , k);
k++;
}
}
cout << ")";
}
void solve()
{
n = ;
for (;;)
{
fgets(buf[n], maxn, stdin);
if (buf[n][] == '#') break;
else n++;
}
cout << "(";
if (n)
{
int l = strlen(buf[]);
for (int i = ; i < l; i++)
if (buf[][i] != ' ') { dfs(, i); break; }
}
cout << ")"<<endl;
} int main()
{
int t;
fgets(buf[], maxn, stdin);
sscanf(buf[], "%d", &t);
while (t--) solve();
return ;
}

UVa 10562看图写树(二叉树遍历)的更多相关文章

  1. Uva 10562 看图写树

    题目链接:https://uva.onlinejudge.org/external/105/10562.pdf 紫书P170 直接在二维数组上做DFS,用的fgets函数读入数据,比较gets函数安全 ...

  2. UVa 10562 Undraw the Trees 看图写树

    转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 题目大意: 题目传送门:UVa 10562Undraw the Trees 给定字符拼成的树,将 ...

  3. 看图写树 (Undraw the Trees UVA - 10562)

    题目描述: 原题:https://vjudge.net/problem/UVA-10562 题目思路: 递归找结点 //自己的代码测试过了,一直WA,贴上紫书的代码 AC代码 #include< ...

  4. UVA10562(看图写树,dfs)

    这个题过的好艰难,不过真的学到好多. 关于fgets的用法真的是精髓.!isspace(c)和c!=' '是有区别的. 其它的看代码吧 #include <iostream> #inclu ...

  5. 6-17 看图写树 uva10562

    非常好的dfs题  有很多细节 关于‘ ’  ‘0’  ’\n‘  的处理  他们都属于isspace函数 其中 while(buf[x+2][i]=='-'&&buf[x+3][i] ...

  6. 看图写代码---看图写代码 阅读<<Audio/Video Connectivity Solutions for Virtex-II Pro and Virtex-4 FPGAs >>

    看图写代码 阅读<<Audio/Video Connectivity Solutions for Virtex-II Pro and Virtex-4 FPGAs >> 1.S ...

  7. UVa 10562 Undraw the Trees(递归遍历)

    题目链接: https://cn.vjudge.net/problem/UVA-10562 Professor Homer has been reported missing. We suspect ...

  8. POJ 题目1145/UVA题目112 Tree Summing(二叉树遍历)

    Tree Summing Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8132   Accepted: 1949 Desc ...

  9. 算法随笔-二叉树遍历的N种姿势

    最近在练习用Python刷算法,leetcode上刷了快300题.一开始怀疑自己根本不会写代码,现在觉得会写一点点了,痛苦又充实的刷题历程.对我这种半路出家的人而言,收获真的很大. 今天就从二叉树遍历 ...

随机推荐

  1. Openstack+Kubernetes+Docker微服务实践之路--基础设施

    近两年微服务在网上聊的如此的如火如荼,备受关注,我在去年下半年的一个项目中也用到了阿里云的EDAS.HSF,深有体会,最近时间空闲出于好奇,决定一探究竟打算自建微服务平台,基本实现EDAS.HSF的功 ...

  2. "SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法

    "SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法 1.检查登录密码 如果密码错误,修改数据库密码,用windows身份验证登录进去, (1)安全--登 ...

  3. implicit operator

    class Digit { public Digit(double d) { val = d; } public double val; // ...other members // User-def ...

  4. redis 在32位系统安装以及使用

    1.下载32位redis文件. http://pan.baidu.com/s/1eRIZPAE 我下载后的路径是:E:\Redis\Redis 里面的文件如图:  2.调取命令窗口 win+R,输入命 ...

  5. 转帖-[教程] Win7精简教程(简易中度)2016年8月-0day

    [教程] Win7精简教程(简易中度)2016年8月 0day 发表于 2016-8-19 16:08:41  https://www.itsk.com/thread-370260-1-1.html ...

  6. SSH项目Class类的注解与属性的注解

    经过一段日子对SSH的学习,为了有利于随时能熟练的把一个SSH的项目快速的搭建起来,并且在报错的时候,将报错信息和解决 方案记录下来,每天一次的代码练习已成为家常便饭 所以,在反复练习的时候,发现Sp ...

  7. Xcode 8 的 Debug 新特性

    Contents OverView Static Analyzer Localizability Instance Cleanup Nullablility Runtime Issue View De ...

  8. HTML 段落<p>标签

    <p> 标签定义段落. p 元素会自动在其前后创建一些空白.浏览器会自动添加这些空间,您也可以在样式表中规定. 段间距IE默认为19px,通过p的margin-top属性设置FF默认为1. ...

  9. junit高级篇(参数化、打包测试)-实例代码

    工程目录: 参数化测试,SquareTest.java: import static org.junit.Assert.*; import java.util.Arrays; import java. ...

  10. guava--Joiner、Splitter、MapJoinner、MapSplitter

    Joiner: List<String> stringList = new ArrayList<String>(); stringList.add("aa" ...