首页 > 其他分享 >314完全二叉树的子树

314完全二叉树的子树

时间:2023-12-23 10:55:07浏览次数:38  
标签:Count 结点 子树 int 314 二叉树 numberofVertex

题目:完全二叉树的子树

问题描述

对一棵完全二叉树,采用自上而下、自左往右的方式从1开始编号,我们已知这个二叉树的最后一个结点是n,现在的问题是结点m所在的子树一共包括多少个结点?

输入格式

        输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。0 0表示输入结束。

输出格式

        对于每一组测试数据,输出一行,该行包含一个整数,给出结点m所在子树中包括的结点的数目。

样例输入

        3 12

    0 0

样例输出

        4

 

 1 #include<stdio.h>
 2 int Count(int m,int n);
 3 
 4 int main()
 5 {
 6     int m,n;
 7     
 8     while(1)
 9     {
10         scanf("%d%d",&m,&n);
11         
12         if(m==0&&n==0) break;
13     
14         int numberOfChild=0;
15         numberOfChild=Count(m,n);
16         
17         printf("%d\n",numberOfChild);
18     }
19     return 0;
20 }
21 
22 int Count(int m,int n)//n is the total
23 {
24     int numberofVertex;
25     if(m>n) numberofVertex=0;
26     else
27     {
28         numberofVertex=Count(m*2,n)+Count(m*2+1,n)+1;
29     }
30     return numberofVertex;
31 }

 

典型递归;

需要注意的是,求的是结点m所在的子树一共包括多少个结点,要加上m本身(递归多加一个1);

写这种有返回值的递归函数,还是得另开一个临时变量作为返回值,不然绕不清楚(numberofVertex);

 

标签:Count,结点,子树,int,314,二叉树,numberofVertex
From: https://www.cnblogs.com/xzdmzrc221202/p/17922780.html

相关文章

  • 23_合并二叉树
    617.合并二叉树给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为null的节点将......
  • 199. 二叉树的右视图(中)
    目录题目题解:BFS题目给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。题解:BFS用BFS,每一层最后一个弹出队列的元素加到结果列表里面classSolution:defrightSideView(self,root:Optional[TreeNode])->Lis......
  • 107. 二叉树的层序遍历 II(中)
    目录题目题解:BFS题目给你二叉树的根节点root,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)题解:BFS用BFS把每层的结点存在一个单独的列表里,最后翻转整个结果列表classSolution:deflevelOrderBottom(self,root:Op......
  • 103. 二叉树的锯齿形层序遍历(中)
    目录题目题解:BFS题目给你二叉树的根节点root,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。题解:BFS用BFS把每一层的结点存在一个列表里面,然后判断一下如果是偶数层就翻转列表,最后都加入结果列表返回即可classSo......
  • 二叉树
    一.二叉树的概念1.二叉树的性质二叉树的每个节点最多有两个子节点,分别称为左孩子和右孩子,以他们为根的子树称为左子树和右子树。二叉树的第i层最多有2^(i-1)个节点。如果每层的节点数都是满的,称他为满二叉树。图例:如果这个二叉树只是在最后一层有缺失,且......
  • 21_从中序与后序遍历序列构造二叉树
    106.从中序与后序遍历序列构造二叉树给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。示例1:输入:inorder=[9,3,15,20,7],postorder=[9,15,7,20,3]输出:[3,9,20,null,null,15,7]......
  • 相同二叉树和镜面二叉树问题
    相同二叉树和镜面二叉树问题作者:Grey原文地址:博客园:相同二叉树和镜面二叉树问题CSDN:相同二叉树和镜面二叉树问题判断两棵树是否是相同的树题目描述见:LeetCode100.SameTree即:如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。比如:两个树结构完全一致,对......
  • 2023-2024-1 20231414 《计算机基础与程序设计》第十二周学习总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第十二周作业)这个作业的目标<学习《C......
  • 2023-2024-1 20231413 《计算机基础与程序设计》第十二周学习总结
    2023-2024-120231413《计算机基础与程序设计》第十二周学习总结1.作业信息班级:2023-2024-1-计算机基础与程序设计作业要求:2023-2024-1《计算机基础与程序设计》教学进程目标:自学教材:《C语言程序设计》第12章并完成云班课测试作业正文:https://www.cnblogs.com/Kaifazheju......
  • 2023-2024-1 20231425《计算机基础与程序设计》第十二周学习总结
    2023-2024-120231425《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1计算机基础与程序设计第十二周作业)这个作业的目标自学《计算机科学概论》第17章,《C语......