列出叶结点(PTA)
对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。
输入格式:
首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 “-”。编号间以 1 个空格分隔。
输出格式:
在一行中按规定顺序输出叶节点的编号。编号间以 1 个空格分隔,行首尾不得有多余空格。
输入样例:
8
1 -
0 -
2 7
5 -
4 6
输出样例:
4 1 5
#include<iostream>
#include<stack>
#include<queue>
const int Max = 10+5;
using namespace std;int main() {pair<int, int> p[Max];int hash[Max] = {0};int n;cin>>n;if(n == 0) { cout<<endl; return 0;}char a,b;for(int i = 0; i < n; i++) {cin>>a>>b;if(a ^ '-') {p[i].first = a - '0';hash[a - '0'] = 1;} else {p[i].first = -1;}if(b ^ '-') {p[i].second = b - '0';hash[b - '0'] = 1;} else {p[i].second = -1;}}queue<int> q;for(int i = 0; i < n; i++) {if(hash[i]) continue;q.push(i);break;}int count;int t = 0;while(!q.empty()) {// cout<<' '<<q.front();count = 0;if(p[q.front()].first ^ -1) {q.push(p[q.front()].first);count++;}if(p[q.front()].second ^ -1) {q.push(p[q.front()].second);count++;}if(!count) {if(t) cout<<' '<<q.front();else {cout<<q.front();t = 1;}}q.pop();}return 0;
}
这个题目讲了这么多其实就是层序遍历,是叶子节点就输出,还是哈希记录O(1)查找,如果左右都没节点(count=0)就输出
列出叶结点(PTA)相关推荐
- 7-7 列出叶结点 (10 分)
7-7 列出叶结点 (10 分) 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 N ...
- 7-4 (小字辈) 7-5 (列出叶结点) 7-6 (顺序存储的二叉树的最近的公共祖先问题)
目录 7-4 小字辈 7-5 列出叶结点 7-6 顺序存储的二叉树的最近的公共祖先问题 总结: 7-4 小字辈 原题链接:题目详情 - 7-4 小字辈 (pintia.cn) 思路: 利用一维数组下标 ...
- 【两种解法】基础实验4-2.2 列出叶结点 (25 分)
立志用最少的代码做最高效的表达 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 N− ...
- 列出叶节点 python
7-10 列出叶结点 (10 分) 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 ...
- 在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是( )
在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是( ) A. 41 B. 82 C. 113 D. 122 设树中度为i(i ...
- LeetCode 988. 从叶结点开始的最小字符串(DFS)
文章目录 1. 题目 2. 解题 1. 题目 给定一颗根结点为 root 的二叉树,树中的每一个结点都有一个从 0 到 25 的值,分别代表字母 'a' 到 'z':值 0 代表 'a',值 1 代表 ...
- 6-8 先序输出叶结点 (15 分)
** 6-8 先序输出叶结点 (15 分) ** 本题要求按照先序遍历的顺序输出给定二叉树的叶结点. 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其 ...
- PTA4-11 先序输出叶结点
4-11 先序输出叶结点 (15分) 本题要求按照先序遍历的顺序输出给定二叉树的叶结点. 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其中Bin ...
- 如果哈夫曼树有67个结点,则可知叶结点总数为
由于哈夫曼树中没有度为1得结点. 只有度为0和度为2得结点.根据n2=n0-1, 则一棵有n0个叶子结点得哈夫曼树共有2n0-1个结点,因而n0=34 故如果哈夫曼树有67个结点,则可知叶结点总数为3 ...
最新文章
- OpenCV 【十】——Gamma校正 ——图像灰度变化
- java iostream_【JAVA】IOStream
- 定义简单的反射工厂示例
- 洛谷 1608 路径统计
- Zend Studio 高亮显示dwt和lbi
- swiper根据图片切换不同的背景色
- SQL中GROUP BY语句介绍
- VS遍历windows文件夹的代码
- java struts 读取文件_读取文件.txt并将其保存到c中的struct
- 重启网卡报错Job for network.service failed because the control process exited with error code.
- 芒果改进YOLOv7系列:首发改进特征融合网络BiFPN结构,融合更多有效特征
- RK3399调试支持以太网
- 【综述专栏】陈恩红: 社交网络的信息传播分析及其应用
- VMware虚拟机安装Ubuntu kylin 麒麟系统教程 超详细
- 磁盘检查清理修复命令
- 树莓派开机发送IP到邮箱
- 2021阳城一中高考成绩查询,2019阳城一中录取分数线(附2019高考成绩喜报)
- JAVA自我总结和分享—JVM
- 从微博搜索相关话题下的所有热门博文链接
- 什么称之为计算机网络,5G来临要消灭WiFi?无线数据之父称“笑话一个”
热门文章
- Revit 2017 编程需要用Visual Studio2015 +.NET Framework 4.52
- (附源码)springboot校园闲置物品交易系统 毕业设计 521472
- RDA TDT TOT
- Palo Alto Policy
- PCA的应用示例(转载)
- 从零开始搭建仿抖音短视频APP-后端开发短视频业务模块(2)
- 【5种灵活有效方式】如何从死机手机中恢复内部数据?
- Python+Vue计算机毕业设计老年教育学习系统fte91(源码+程序+LW+部署)
- Excel开发(VBA)— 快速定位最后有记录的行
- 一文读懂BERT(原理篇)