描述

生活的暑假刚集训开始,他要决心学好字典树,二叉树,线段树和各种树,但生活在OJ上刷题的时候就遇到了一个特别烦恼的问题。那当然就是他最喜欢的二二叉树咯!题目是这样的:给你一颗非空的二叉树,然后再给你一个整数n,让生活输出这颗二叉树的第n(n>0且n<=树的深度)层,出题者为了给生活降低难度,要求两个输出数据之间用'~'隔开。看来我们的出题人很有爱啊!

 
输入
第一行输入一个数N,表示有N组测试数据。接下来N行,每行一个字符串,用'#'表示为空的节点,树的结束标志为'@'。'@'后仅有一个空格,空格后为一个数字,表示生活要输出的二叉树的第几层!
输出
每行输出一个字符串,表示给出二叉树的第n层!
样例输入
2
1 2 # # 3 # # @ 1
5 7 3 # # # 4 # # @ 3
样例输出
1
3
提示
5 第一层
/ \
7 4 第二层
/
3 第三层
看似简单的二叉树,对我这菜鸟真是折磨~~啊
 #include<iostream>
using namespace std;
int j=;
typedef struct Node
{
char data;
Node *left;
Node *right;
}Node;
Node* Create()
{
char ch;
cin>>ch;
Node* root; if(ch=='#')
return NULL;
else
{
root=new Node;
root->data=ch;
root->left=Create();
root->right=Create();
return root;
}
}
void createTree(Node *&root)
{
char ch;
cin>>ch;
if(ch == '#')
root = NULL;
else
{
root = new Node;
if(!root)
return;
root->data = ch;
createTree(root->left);
createTree(root->right);
} } void print(Node *root, int k, int i)
{
if( root )
{
if(i == k && j == )
{
cout<<root->data;
j++;
return;
}
else if(i == k && j > )
{
cout<<"~"<<root->data;
j++;
return;
}
i++;
print(root->left,k,i);
print(root->right,k,i); }
}
//void t(Node *root)
//{
// if(root)
// {
// t(root->left);
// cout<<root->data<<" ";
// t(root->right);
// }
//}
int main()
{
char data;
struct Node *root=NULL;
int n,i;
cin>>n;
while(n--)
{
createTree(root);
cin>>data;
cin>>i;
print(root,i,);
cout<<endl;
root = NULL;
j=;
}
return ;
}

NOJ 1063 生活的烦恼的更多相关文章

  1. NYOJ 1063 生活的烦恼 (二叉树)

    题目链接 描述 生活的暑假刚集训开始,他要决心学好字典树,二叉树,线段树和各种树,但生活在OJ上刷题的时候就遇到了一个特别烦恼的问题.那当然就是他最喜欢的二二叉树咯!题目是这样的:给你一颗非空的二叉树 ...

  2. python 爬取腾讯微博并生成词云

    本文以延参法师的腾讯微博为例进行爬取并分析 ,话不多说 直接附上源代码.其中有比较详细的注释. 需要用到的包有 BeautifulSoup WordCloud jieba # coding:utf-8 ...

  3. [转]一个普通IT人的十年回顾---金旭亮

    金旭亮老师十年体会,很有收获.转自网络. 金旭亮于1989年与超级解霸的开发者梁肇新同时迈入广西大学的校门,却走了一条与其不同的路. 1994年起开始自学计算机专业本科课程,并开始编程,从未间断,迄今 ...

  4. 金老师的经典著作《一个普通IT人的十年回顾》

    学习人生             -------一个普通IT人的十年回顾(上)序从1994到2003,不知不觉之间,我已在计算机技术的世界里沉浸了十年.有位哲人说过:如果一个人能用十年的时间专心致志地 ...

  5. 20岁的设计师vs30岁的设计师

    20岁的设计师vs30岁的设计师 如果你还是20来岁,要恭喜你,你还年轻, 一切才刚刚开始 还有时间去探索无尽的可能 还有时间去找到无限的前途 ​ 如果30岁的你还不够强大, 请记得时刻给予自己信心, ...

  6. Kotlin教程——史上最全面、最详细的学习教程,持续更新中....

    关于这个系列教程,我是从最基础的开发环境搭建到项目进阶到后面的项目开发这个过程来写的.我一直秉承从实际项目开发以及源码解析的角度去写好这个教程,并让从未接触过编程的朋友能学好kotlin这门语言.所以 ...

  7. TYLER ADAMS BRADBERRY:人到中年,要学会戒掉这三点

    在一些国家的一些人当中,总会出现这样一个问题"中年危机".而到了中年,人与人间的差距似乎也变得越来越大.有人说,人到中年,是一个门槛,有的人迈过去了,有的人没迈过去.但是,其实实话 ...

  8. NABCD校园生活

    N(Need,需求) 在校师生得到的信息分散,极大的影响了师生的学习效率,所以就会有快速得到全面信息的需求,而我们的APP正是在解决这个问题. A(Approach,做法) 我们会在主页进行信息分类, ...

  9. IT痴汉的工作现状11-程序猿的烦恼

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lincyang/article/details/25535181         痴汉们事实上是非常 ...

随机推荐

  1. JavaEE基础(十四) /正则

    1.常见对象(正则表达式的概述和简单使用) A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. 作用:比如注册邮箱,邮箱有用户名和 ...

  2. [转载]Android系统开机画面的实现

    Android系统开机画面分为下面三个阶段: 1.开机图片:Android内核是基于标准内核的,对linux比较熟悉,特别是在开发板上移植过Linux系统的人就知道在内核引导过程中会显 示出一 个小企 ...

  3. cookie存储记录

    ////// 历史记录 $(function () { // 标题 var art_title = $("#Lbl_Hotel_Name").text(); // 得到当前路径 v ...

  4. 周赛-KIDx's Pagination 分类: 比赛 2015-08-02 08:23 7人阅读 评论(0) 收藏

    KIDx's Pagination Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) S ...

  5. h264

    H264--编码原理以及I帧B帧P帧--1 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论 ...

  6. springmvc配置文件-1

    项目1: web.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?& ...

  7. [转]人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata)

    人人网首页拖拽上传详解(HTML5 Drag&Drop.FileReader API.formdata) 2011年12月11日 | 彬Go 上一篇:给力的 Google HTML5 训练营( ...

  8. wireshark抓包直观图解 TCP三次握手/四次挥手详解

    转http://www.seanyxie.com/category/linux/ 作者:seanyxie |   一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负 ...

  9. easyUI学习网站

    http://www.runoob.com/jeasyui/plugins-form-timespinner.html http://www.jeasyui.net/plugins/178.html ...

  10. Linux网络统计工具/命令

    我在Linux(基于CentOS 或者 Debian 的发行版)中该如何查看当前网络端口吞吐量的统计信息?在Linux操作系统中如何查看当前内核snmp计数器以及网络端口的统计信息? 你可以使用以下任 ...