【问题描述】
已知一棵完全二叉树的总结点数为n,编程求它的叶子结点数n0。

【输入格式】
完全二叉树的总结点数n

【输出格式】
完全二叉树的总结点数n0

【输入样例】
1001

【输出样例】
501

【算法分析】
设完全二叉树的总结点数为n,叶子结点数为n0,单分支结点数为n1,双分支结点数为n2,则有:n=n0+n1+n2
又因为二叉树有性质:n0=n2+1
两式子联立得:n0=(n+1-n1)/2
由于完全二叉树的单分支结点数n1要么为0,要么为1。所以,当n为偶数时,n1必须为1,才能保证n0为整数。等价于当n为偶数时,n0=n/2;当n为奇数时,n1必须为0,才能保证n0为整数。等价于当n为奇数时,n0=(n+1)/2

【算法代码】

#include <bits/stdc++.h>
using namespace std;int n;
int main() {cin>>n;if(n%2==0) cout<<n/2<<endl;else cout<<(n+1)/2<<endl;return 0;
}/*
in:
1001out:
501
*/

编程求完全二叉树的叶子结点数相关推荐

  1. C++数据结构与算法—用递归方法求二叉树的叶子结点数

    用递归方法写一个算法,求二叉树的叶子结点数int leafnum(BTREE T). 要求: 1.定义二叉树的抽象数据类型和型BTREE,并定义基本操作. 2.编写函数1eafnum(BTREE T, ...

  2. 计算二叉树的深度和叶子结点数

    目录 一.求给定二叉树的深度 二.求给定二叉树中的叶子结点数 三.例题 一.求给定二叉树的深度 二叉树的深度就是二叉树中结点的最大层次.如果二叉树是空树,则深度为0:否则,可分别求二叉树根的左子树和右 ...

  3. 假设二叉树采用二叉链存储结构,编写一个算法,求出二叉树中的叶子结点数,并设计主函数调用上述算法。

    假设二叉树采用二叉链存储结构,编写一个算法,求出二叉树中的叶子结点数,并设计主函数调用上述算法. #include<iostream>//蓝多多算法实验五:二叉树的应用(二) #inclu ...

  4. 【数据结构】求以孩子兄弟表示法存储的森林的叶子结点数,树高

    1.求叶子结点数 T的第一个孩子存在T->firstChild里,所以如果T连第一个孩子都没有,那肯定为叶子结点,也就是说T->firstChild==NULL. 所以说,以孩子兄弟表示法 ...

  5. c语言二叉树结点 深度,求二叉树的深度、总结点数和叶子结点数

    二叉树的二叉链表的存储结构: typedef   char   TElemType; typedef   struct    BiTNode { TElemType data;//数据元素 BiTNo ...

  6. 编程求以孩子兄弟表示法存储的森林的叶子结点数☆

    题目:编程求以孩子兄弟表示法存储的森林的叶子结点数 分析:我们可以试想一个节点它如果有左孩子,那么根据孩子兄弟表示法的规则,那它一定不是叶节点,相反如果没有左孩子,那么             它一定 ...

  7. 代码实现求二叉树结点数和叶子结点数(C语言)

    本篇会用到之前讲过的二叉树三种遍历方法的代码实现,当然这里还会再写一遍,可以先去看这篇博客二叉树的概念及三种遍历方法(C语言)_Perfectkn的博客-CSDN博客 目录 两种方法求二叉树结点总个数 ...

  8. 天梯选拔:先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数

    思路分析: 这道题考察二叉树的建立以及二叉树的前序遍历.中序遍历和后序遍历.首先按照先序建立二叉树.在这期间需要先建立一个结构体,包括当前节点的值,以及它的左儿子和右儿子.注意这里不能直接存左儿子和右 ...

  9. 数据结构,计算二叉树叶子结点数 C语言实现

    树的存储结构 typedef struct BiTNode {char data;struct BiTNode* lchild, * rchild; }BiTNode, * BiTree; 代码实现 ...

  10. 数据结构:二叉树的创建,打印前中后序遍历,节点个数,叶子节点数,销毁,第K层中节点的个数,查找值为x的节点

    二叉树遍历:按照某种特定的规则,依次对二叉树中的节点进行相应的操作,并且每个节点只操作一次.(采用递归思想) 先序遍历:先遍历根节点,再遍历根节点的左子树,最后遍历根节点的右子树. 中序遍历:先遍历左 ...

最新文章

  1. 中国式离婚中,林与宋离婚成为定局的时刻
  2. Intellij IDEA 导入或运行流式处理框架storm以及java.lang.NoClassDefFoundError报错的解决方案
  3. 2020年中职学计算机有前途吗,2020年南昌中专计算机专业都学什么
  4. CentOS7.5 Linux搭建全文检索--Solr7.4.0单机服务
  5. 《Linux编程》学习笔记 ·003【Shell编程】
  6. android4.2 高用zing拍照后,返回其它页面操作时,主线程关掉或程序退出的问题解决...
  7. 简单算法系列之完数的计算
  8. pyqt5 登录窗口调用主窗口
  9. macbookpro bootcamp win10 蓝牙鼠标卡顿解决方案
  10. 什么软件可以压缩图片大小?这几个软件值得收藏
  11. 爬取m3u8格式文件并下载ts文件转换为MP4文件
  12. SpringBoot 整合ActiveMQ
  13. 【Flutter实战静态页面】--在线点餐app(1)顶端栏
  14. 入职快两个月的一些感悟
  15. Linux虚拟地址和物理地址的映射
  16. bootstrap3的jumbotron和glyphicon glyphicon-*的用法
  17. centos下配置wifi连接
  18. 基于LSTM的情绪分析
  19. Android中使用shape自定义纯色图片总结
  20. 城中村水费一吨5元,电费一度1.5元,很贵,而我只能选择城中村

热门文章

  1. 多云环境无处不在,但其管理才刚开始
  2. 拦截器和过滤器的区别
  3. 博科SAN交换机配置Trunk
  4. HTTP协议详解(必看)
  5. javaweb汽车租赁系统
  6. 通信upf是什么意思_管理UPF的方法、装置及系统与流程
  7. android 获取路由器id,华为路由器从旧路由获取宽带帐号和密码具体教程
  8. 计算机cad标题栏快捷键,AutoCAD快捷键和工具栏及菜单栏大集合
  9. 哈夫曼编码问题(贪心)
  10. ShaderForge插件介绍详解