思路:递归解决

问题描述

对一棵完全二叉树,采用自上而下、自左往右的方式从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-完全二叉树的子树相关推荐

  1. PTA L2-035 完全二叉树的层序遍历(树的遍历)

    L2-035 完全二叉树的层序遍历 (25分) 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树.对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的 ...

  2. 清华计算机912考研真题解析

    算法题(选自2020年清华912真题) A,B,C,D和F都是3分每题,E为5分.下图给出二叉树的结构体声明: struct BinNode { //二叉树节点 BinNodePosi(T) lc; ...

  3. 树的节点、度数、高度、深度、遍历

    1.节点的度与树的度 节点的度:结点拥有的子树数目称为结点的度,叶子结点 就是度为0的结点 树的度:树内各结点的度的最大值 分支节点:度不为0的节点 ------------------------- ...

  4. 算法学习 (门徒计划)4-3 专项面试题解析 学习笔记

    算法学习 (门徒计划)4-3 专项面试题解析 学习笔记 前言 LeetCode 1367. 二叉树中的列表 解题思路 示例代码 LeetCode 958. 二叉树的完全性检验 解题思路 示例代码 Le ...

  5. day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数

    文章目录 前言 一.翻转二叉树(力扣226) 1.递归法 1.使用前序遍历 2.使用后序遍历 2.迭代法 1.层序遍历 二.对称二叉树(力扣101) 三.相同的树(力扣100) 四.另一棵树的子树(力 ...

  6. 完全二叉树、平衡二叉树、二叉查找树(二叉排序树)

    完全二叉树 完全二叉树是一种特殊的二叉树,满足以下要求: 所有叶子节点都出现在 k 或者 k-1 层,而且从 1 到 k-1 层必须达到最大节点数: 第 k 层可以不是满的,但是第 k 层的所有节点必 ...

  7. 判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)

    平衡二叉树的解法:主要是求出二叉树的高度,若根节点的左子树的高度与右子树的高度差小于等于1,则表示该二叉树为平衡二叉树 public static class Node{public int valu ...

  8. 有关完全二叉树求节点数和前缀树求字符串是否重复的两道算法题

    1.给定一棵完全二叉树的头节点head,求其中的节点个数 递归的方法,时间复杂度为O((logN)²) 首先递归出头节点的左子树的最大深度H,之后再递归头节点的右子树的深度是否等于H,若相等则表示,头 ...

  9. PAT甲级1123 Is It a Complete AVL Tree (30分):[C++题解]建立平衡树、bfs,判完全二叉树

    文章目录 题目分析 题目链接 题目分析 来源:pat网站 本题作为进阶题,它的基础知识点如下几题. PAT甲级1066 Root of AVL Tree (25分):[C++题解]建立平衡树(AVL树 ...

  10. PAT甲级1110 Complete Binary Tree:[C++题解]判断完全二叉树

    文章目录 题目分析 题目链接 题目分析 分析: 按照层序的顺序将完全二叉树存在下标从1开始的数组中.如果是完全二叉树,会将数组中1 ~ n这些位置填满,最大下标就是n,如果最大下标大于n,说明中间有空 ...

最新文章

  1. 系统策略禁止安装python_Win10系统如何禁止自动安装捆绑软件?
  2. 使用javadoc命令生成文档
  3. @1.0.0 dev: `webpack-dev-server --inline --progress --config
  4. Sklearn参数详解—SVM
  5. 【入门5】字符串(今天刷洛谷了嘛)
  6. 小鹏吃相难看,消费者难做“鹏”友
  7. 计算机网络学习笔记(17. 计算机网络作业一)
  8. sql server只读_如何在SQL Server 2016中为可用性组配置只读路由
  9. eclipse springmvc+Thymeleaf
  10. git学习(五)分支操作和解决冲突
  11. 【BZOJ3894】文理分科(最小割)
  12. 绿坝捅乱子,全球看笑话
  13. MySQL多实例管理(mysqld_multi)
  14. Netty+WebSocket服务器完成Web聊天室(纯文字)
  15. 唯冠也很苦!赢了苹果也付不出律师费
  16. n918st能刷Android5吗?,中兴 N918ST中文Recovery刷机教程
  17. Word文档的两种密码忘记了,怎么办?
  18. html项目的致谢词,毕业论文的致谢词范文(精选5篇)
  19. python求球的表面积_python-Hypar的表面积(双曲线抛物面)
  20. P14-Vue-supermall项目-BetterScroll滚动插件基本使用

热门文章

  1. 【5.12-5.13】实训Day-6Day-7记录
  2. 【项目经验】Java web 页面跳转中文乱码
  3. 微信朋友圈闪退代码是什么?微信朋友圈闪退代码使用方法
  4. 安卓源码集合,视频播放器手机屏幕助手点融投资悬浮窗抽奖转盘
  5. 【浅墨Unity3D Shader编程】之一 游戏场景的创建 第一个Shader的书写
  6. php tp5微信支付,tp5微信支付踩坑
  7. 如何烧录tizen镜像文件?(图文教程)
  8. windows phone 应用提交商店失败总结
  9. Android Studio制作简易微信界面
  10. py218-基于Python+django的零食销售商城网站#毕业设计