XDOJ-314-完全二叉树的子树
思路:递归解决
问题描述
对一棵完全二叉树,采用自上而下、自左往右的方式从1开始编号,我们已知这个二叉树的最后一个结点是n,现在的问题是结点m所在的子树一共包括多少个结点?
输入格式
输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。0 0表示输入结束。
输出格式
对于每一组测试数据,输出一行,该行包含一个整数,给出结点m所在子树中包括的结点的数目。
样例输入
3 12
0 0
样例输出
4
#include <stdio.h>int count = 0; // 结点个数int Count(int m, int n)
{if (2*m <= n) // 左孩子结点{count++;Count(2*m, n); // 递归计算左孩子结点的子结点}if (2*m+1 <= n) // 右孩子结点{count++;Count(2*m+1, n);// 递归计算右孩子结点的子结点}return count;
}int main(void)
{int n, m;int i = 0; // 记录共输入多少组数据int val[100]; // 储存每组子树的结点个数while (scanf("%d %d", &m, &n) == 2 && m != 0 && n != 0){val[i++] = Count(m, n) + 1; // count = 0;// 更新count值为0}for (int j = 0; j < i; j++)printf("%d\n", val[j]);return 0;
}
XDOJ-314-完全二叉树的子树相关推荐
- PTA L2-035 完全二叉树的层序遍历(树的遍历)
L2-035 完全二叉树的层序遍历 (25分) 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树.对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的 ...
- 清华计算机912考研真题解析
算法题(选自2020年清华912真题) A,B,C,D和F都是3分每题,E为5分.下图给出二叉树的结构体声明: struct BinNode { //二叉树节点 BinNodePosi(T) lc; ...
- 树的节点、度数、高度、深度、遍历
1.节点的度与树的度 节点的度:结点拥有的子树数目称为结点的度,叶子结点 就是度为0的结点 树的度:树内各结点的度的最大值 分支节点:度不为0的节点 ------------------------- ...
- 算法学习 (门徒计划)4-3 专项面试题解析 学习笔记
算法学习 (门徒计划)4-3 专项面试题解析 学习笔记 前言 LeetCode 1367. 二叉树中的列表 解题思路 示例代码 LeetCode 958. 二叉树的完全性检验 解题思路 示例代码 Le ...
- day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数
文章目录 前言 一.翻转二叉树(力扣226) 1.递归法 1.使用前序遍历 2.使用后序遍历 2.迭代法 1.层序遍历 二.对称二叉树(力扣101) 三.相同的树(力扣100) 四.另一棵树的子树(力 ...
- 完全二叉树、平衡二叉树、二叉查找树(二叉排序树)
完全二叉树 完全二叉树是一种特殊的二叉树,满足以下要求: 所有叶子节点都出现在 k 或者 k-1 层,而且从 1 到 k-1 层必须达到最大节点数: 第 k 层可以不是满的,但是第 k 层的所有节点必 ...
- 判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)
平衡二叉树的解法:主要是求出二叉树的高度,若根节点的左子树的高度与右子树的高度差小于等于1,则表示该二叉树为平衡二叉树 public static class Node{public int valu ...
- 有关完全二叉树求节点数和前缀树求字符串是否重复的两道算法题
1.给定一棵完全二叉树的头节点head,求其中的节点个数 递归的方法,时间复杂度为O((logN)²) 首先递归出头节点的左子树的最大深度H,之后再递归头节点的右子树的深度是否等于H,若相等则表示,头 ...
- PAT甲级1123 Is It a Complete AVL Tree (30分):[C++题解]建立平衡树、bfs,判完全二叉树
文章目录 题目分析 题目链接 题目分析 来源:pat网站 本题作为进阶题,它的基础知识点如下几题. PAT甲级1066 Root of AVL Tree (25分):[C++题解]建立平衡树(AVL树 ...
- PAT甲级1110 Complete Binary Tree:[C++题解]判断完全二叉树
文章目录 题目分析 题目链接 题目分析 分析: 按照层序的顺序将完全二叉树存在下标从1开始的数组中.如果是完全二叉树,会将数组中1 ~ n这些位置填满,最大下标就是n,如果最大下标大于n,说明中间有空 ...
最新文章
- 系统策略禁止安装python_Win10系统如何禁止自动安装捆绑软件?
- 使用javadoc命令生成文档
- @1.0.0 dev: `webpack-dev-server --inline --progress --config
- Sklearn参数详解—SVM
- 【入门5】字符串(今天刷洛谷了嘛)
- 小鹏吃相难看,消费者难做“鹏”友
- 计算机网络学习笔记(17. 计算机网络作业一)
- sql server只读_如何在SQL Server 2016中为可用性组配置只读路由
- eclipse springmvc+Thymeleaf
- git学习(五)分支操作和解决冲突
- 【BZOJ3894】文理分科(最小割)
- 绿坝捅乱子,全球看笑话
- MySQL多实例管理(mysqld_multi)
- Netty+WebSocket服务器完成Web聊天室(纯文字)
- 唯冠也很苦!赢了苹果也付不出律师费
- n918st能刷Android5吗?,中兴 N918ST中文Recovery刷机教程
- Word文档的两种密码忘记了,怎么办?
- html项目的致谢词,毕业论文的致谢词范文(精选5篇)
- python求球的表面积_python-Hypar的表面积(双曲线抛物面)
- P14-Vue-supermall项目-BetterScroll滚动插件基本使用
热门文章
- 【5.12-5.13】实训Day-6Day-7记录
- 【项目经验】Java web 页面跳转中文乱码
- 微信朋友圈闪退代码是什么?微信朋友圈闪退代码使用方法
- 安卓源码集合,视频播放器手机屏幕助手点融投资悬浮窗抽奖转盘
- 【浅墨Unity3D Shader编程】之一 游戏场景的创建 第一个Shader的书写
- php tp5微信支付,tp5微信支付踩坑
- 如何烧录tizen镜像文件?(图文教程)
- windows phone 应用提交商店失败总结
- Android Studio制作简易微信界面
- py218-基于Python+django的零食销售商城网站#毕业设计