对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。

输入格式:
首先第一行给出一个正整数 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)相关推荐

  1. 7-7 列出叶结点 (10 分)

    7-7 列出叶结点 (10 分) 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 N ...

  2. 7-4 (小字辈) 7-5 (列出叶结点) 7-6 (顺序存储的二叉树的最近的公共祖先问题)

    目录 7-4 小字辈 7-5 列出叶结点 7-6 顺序存储的二叉树的最近的公共祖先问题 总结: 7-4 小字辈 原题链接:题目详情 - 7-4 小字辈 (pintia.cn) 思路: 利用一维数组下标 ...

  3. 【两种解法】基础实验4-2.2 列出叶结点 (25 分)

    立志用最少的代码做最高效的表达 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 N− ...

  4. 列出叶节点 python

    7-10 列出叶结点 (10 分) 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 ...

  5. 在一颗度为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 ...

  6. LeetCode 988. 从叶结点开始的最小字符串(DFS)

    文章目录 1. 题目 2. 解题 1. 题目 给定一颗根结点为 root 的二叉树,树中的每一个结点都有一个从 0 到 25 的值,分别代表字母 'a' 到 'z':值 0 代表 'a',值 1 代表 ...

  7. 6-8 先序输出叶结点 (15 分)

    ** 6-8 先序输出叶结点 (15 分) ** 本题要求按照先序遍历的顺序输出给定二叉树的叶结点. 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其 ...

  8. PTA4-11 先序输出叶结点

    4-11 先序输出叶结点   (15分) 本题要求按照先序遍历的顺序输出给定二叉树的叶结点. 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其中Bin ...

  9. 如果哈夫曼树有67个结点,则可知叶结点总数为

    由于哈夫曼树中没有度为1得结点. 只有度为0和度为2得结点.根据n2=n0-1, 则一棵有n0个叶子结点得哈夫曼树共有2n0-1个结点,因而n0=34 故如果哈夫曼树有67个结点,则可知叶结点总数为3 ...

最新文章

  1. OpenCV 【十】——Gamma校正 ——图像灰度变化
  2. java iostream_【JAVA】IOStream
  3. 定义简单的反射工厂示例
  4. 洛谷 1608 路径统计
  5. Zend Studio 高亮显示dwt和lbi
  6. swiper根据图片切换不同的背景色
  7. SQL中GROUP BY语句介绍
  8. VS遍历windows文件夹的代码
  9. java struts 读取文件_读取文件.txt并将其保存到c中的struct
  10. 重启网卡报错Job for network.service failed because the control process exited with error code.
  11. 芒果改进YOLOv7系列:首发改进特征融合网络BiFPN结构,融合更多有效特征
  12. RK3399调试支持以太网
  13. 【综述专栏】陈恩红: 社交网络的信息传播分析及其应用
  14. VMware虚拟机安装Ubuntu kylin 麒麟系统教程 超详细
  15. 磁盘检查清理修复命令
  16. 树莓派开机发送IP到邮箱
  17. 2021阳城一中高考成绩查询,2019阳城一中录取分数线(附2019高考成绩喜报)
  18. JAVA自我总结和分享—JVM
  19. 从微博搜索相关话题下的所有热门博文链接
  20. 什么称之为计算机网络,5G来临要消灭WiFi?无线数据之父称“笑话一个”

热门文章

  1. Revit 2017 编程需要用Visual Studio2015 +.NET Framework 4.52
  2. (附源码)springboot校园闲置物品交易系统 毕业设计 521472
  3. RDA TDT TOT
  4. Palo Alto Policy
  5. PCA的应用示例(转载)
  6. 从零开始搭建仿抖音短视频APP-后端开发短视频业务模块(2)
  7. 【5种灵活有效方式】如何从死机手机中恢复内部数据?
  8. Python+Vue计算机毕业设计老年教育学习系统fte91(源码+程序+LW+部署)
  9. Excel开发(VBA)— 快速定位最后有记录的行
  10. 一文读懂BERT(原理篇)