励志用尽量少的代码做高效的表达。


以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数。

输入格式:

输入二叉树的先序序列。
提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。

输出格式:

输出有两行:
第一行是二叉树的中序遍历序列;
第二行是二叉树的叶子结点个数。

输入样例:

ABC##DE#G##F###

输出样例:

CBEGDFA
3


分析:

由于本题较基础,因此思路从解题转为优化。
本题考查树的中序遍历+求叶子节点个数。
值得注意的是:一般的思维是:中序遍历建一个函数,求叶子结点建一个函数。但更优化的解法是:将两个函数合一,可以减少一次树的遍历,提高效率。

代码:(去掉3行注释为31行)

#include<bits/stdc++.h>
using namespace std;
int sum = 0;
//1、声明
typedef struct BiTNode {                    char x;struct BiTNode* l, *r;
}*BiTree;
//2、创建树
BiTree Create(BiTree T) {                   char ch = getchar();                   //赋值 if(ch == '#') T = NULL;                   //遇#则置空 else {T = new BiTNode();T->x = ch;                         //赋值 T->l = Create(T->l);                //递归赋值 T->r = Create(T->r);} return T;
}
//3、中序遍历+求叶子
void Mid(BiTree T) {                    if(T) {             if(T->l == NULL && T->r == NULL) sum++; if(T->l) Mid(T->l);                   //中序遍历就是把输出放在中间。cout << T->x;if(T->r) Mid(T->r);}
}
int main() {BiTree  T;T = Create(T);Mid(T);  cout << endl << sum;return 0;
}

择苦而安,择做而乐。虚拟现实远远比不上真实精彩之万一。

31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告相关推荐

  1. 求二叉树的叶子结点个数

    7-5 求二叉树的叶子结点个数 (20 分) 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示 ...

  2. 求二叉树的叶子结点个数(C语言)

    输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空树,否则该字符是相应结点的数据元素. 输出格式: 输出有两行: 第一行是二叉树的中序遍历序列 ...

  3. 16行代码AC——例题6-4破损的键盘(Broken Keyboard,UVa 11988)——解题报告

    励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-11988 题目大意: 输入一个字符串,输出在原本应该是怎么样的? 具体方法是: 若读取到'[', 则执行Home键:将光标移到行首. 若读 ...

  4. 28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告

    励志用少的代码做高效的表达 题目(提交)链接→UVA-11809 算是个数学题吧,虽然在AOAPC上面给放到象征水题的第三章里面了. 这个题基本就是帮着你复习了一遍浮点数的存储方式了.浮点数在计算机里 ...

  5. 比紫书优化,14行代码AC——例题 5-7 丑数(Ugly Numbers,UVa 136)——解题报告

    题意: 丑数是一些因子只有2,3,5的数.数列1,2,3,4,5,6,8,9,10,12,15--写出了从小到大的前11个丑数,1属于丑数.现在请你编写程序,找出第1500个丑数是什么. 没有输入 输 ...

  6. 11行代码AC——习题2-4 子序列的和(subsequence)——解题报告

    励志用尽量少的代码做高效的表达. 题目描述: 输入两个正整数n<m<106,输出1/(n²)+1/((n+1)²)+--+1/(m²),保留5位小数.输入包含多组数据,结束标记为n=m=0 ...

  7. 二叉树的进阶操作---(求二叉树中所有结点个数,求叶子结点个数,求第k层结点个数;在二叉树中查找某一结点;层序遍历;判断是否为完全二叉树)

    typedef struct TreeNode {struct TreeNode *left;struct TreeNode *right;char val; }TreeNode;typedef st ...

  8. Java创建二叉树,并使用递归算法求二叉树中叶子结点的数目

    问题描述 创建二叉树,并使用递归算法求二叉树中叶子结点的数目 输入 输入一个用'.'来标明空子树的先根遍历序列,如ABD-EH-CF.I-G- 输出 叶子结点的个数 存储结构 二叉树 算法的基本思想 ...

  9. 求二叉树b的结点个数、叶子结点个数

    #include"tree.cpp" //包含了二叉树的基本算法/*-------- 求二叉树b的结点个数.叶子结点个数 ---------*///求二叉树b的结点个数 int N ...

最新文章

  1. pthred()多线程计算派
  2. 【深度学习】深度神经网络后处理之全连接CRFs(DenseCRF)
  3. Raevo最近疯狂迷上了WP
  4. java String部分源码解析
  5. php决策管理,报表管理与数据分析:为系统未来发展规划提供决策依据,有效避免IT管理与投资的盲目??...
  6. [转载] Python-Strings
  7. BPM调用有webservice接口的.NET插件
  8. ghost还原固态硬盘_固态硬盘到底能不能使用Ghost软件?终于说明白了
  9. eclipse汉化完成常见问题的解决方案
  10. xp计算机无法正常启动,Windows XP电脑开机出错无法正常启动的解决方法
  11. noob_Noob选择JavaScript框架指南
  12. 解决最近github网页无法打开问题
  13. 专访中科创达软件工程师龙辉:Idea赋予实践的演进之路
  14. 页面布局常用,让子级div排排坐
  15. 2021年福建省安全员B证(项目负责人)考试试题及福建省安全员B证(项目负责人)作业模拟考试
  16. 心理学实验必备 | 情绪刺激材料推荐(含图片和声音)
  17. IE打开报错,提示该内存不能为read的解决办法!
  18. k-PPD-ERT实现
  19. 计算机商务英语的用途,计算机在金融业中的应用
  20. 什么是数字化?为什么需要数字化?数字化的未来?

热门文章

  1. PostgreSQL和MySQL技术全面剖析
  2. 作为前阿里人,来扒一扒中台皇帝的外衣!
  3. 下次遇到嚣张的候选人就先这么问:系统变慢了你怎么搞?
  4. 参会指南 | 首届音视频线上峰会倒计时1天!
  5. 【大会】技术决策背后的商业逻辑
  6. LeetCode 1059. 从始点到终点的所有路径(回溯)
  7. 数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构
  8. 腾讯运维技术专家集结,揭秘高效智能运维 | 沙龙报名中
  9. Mini T-block——数据中心界的U盘
  10. 4分钟训练ImageNet!腾讯机智创造AI训练世界纪录