九度OJ——1176树查找
来源:互联网 发布:bp神经网络算法步骤 编辑:程序博客网 时间:2024/06/06 09:55
题目描述:
有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。
输入:
输入有多组数据。
每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。
输出:
输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。
样例输入:
4
1 2 3 4
2
样例输出:
2 3
思路:
用数组存储完全二叉树,首先找到指定层的定一个元素的下标i,判断2*i-1(对应满二叉树的该层的最后一个元素)是否属于这个完全二叉树,若是则打印从i到2*i-1的元素,若不是但i是则打印从i到N的元素,否则输出EMPTY。
AC代码:
#include <iostream>#include <cmath> #include <cstring>using namespace std;int Tree[1001] = {0};int N,level,start;int main(){ while(cin>>N){ memset(Tree,0,sizeof(Tree[0])*1001); for(int i = 1 ; i <= N ; i++){ cin>>Tree[i]; } cin>>level; start = 1; while(level > 1){ start *= 2; level--; } if(start*2-1 <= N){//该层最后一个结点属于二叉树 cout<<Tree[start]; for(int i = start+1 ; i <= start*2-1 ; i++){ cout<<" "<<Tree[i]; } }else if(start <= N && start*2-1 > N){ cout<<Tree[start]; for(int i = start+1 ; i <= N ; i++){ cout<<" "<<Tree[i]; } }else{ cout<<"EMPTY"; } cout<<endl; } return 0; }
阅读全文
0 0
- 九度OJ——1176树查找
- 九度OJ 1176 树查找
- 九度OJ - 1176 - 树查找
- 九度OJ-1176:树查找
- 九度oj 1176 树查找
- 九度OJ题目1176:树查找
- 题目1176:树查找 九度OJ
- 九度OJ 1176:树查找 (完全二叉树)
- 【九度OJ】题目1176:树查找 解题报告
- 九度OJ 1089: 树查找
- 九度oj-1173-查找
- 九度oj-1177-查找
- 九度OJ-题目1176:树查找-10网研上机D
- 九度OJ 1069: 查找学生信息
- 九度OJ 1069 二分查找问题
- 【九度OJ】1029【HashMap查找】
- 【九度OJ】1029【二分查找】
- 九度OJ 1177 查找 (模拟)
- 邻接表存图
- C++文件写入
- java集合中对象某属性比较排序Comparable与Comparator
- Redis 简介
- 123
- 九度OJ——1176树查找
- [NOIP模拟][好题]造盒子
- LeetCode Search in Rotated Sorted Array
- c#学习--1
- 初学Unity3D之制作贪吃蛇(一)
- Java 分页对象
- position里relative与absolute的一些区别
- 51Node 1499图
- 网上商城mvc模式分析