PAT 1004 求各层次叶子节点的数量
来源:互联网 发布:淘宝托管公司收费 编辑:程序博客网 时间:2024/06/08 23:44
题意:给一个树,求各层次的叶子节点数量
思路: 直接通过叶子节点向上遍历,数出他是第几层,然后对应层的叶子数量加1.注意要去一下最大层的层数。
还有就是只有1个根节点的话,不视作叶子节点。
#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<stack>#include<vector>#include<queue>#include<string>#include<map>using namespace std;#define INF 99999999#define M 200//start:22:03//end:22:22int main(){int n,m,i,j,id,childn,child;int nonleaf[M],father[M];memset(nonleaf,0,sizeof(nonleaf));scanf("%d%d",&n,&m);if(n==1){printf("1\n");}for(i=0;i<m;i++){scanf("%d%d",&id,&childn);nonleaf[id]=1;for(j=0;j<childn;j++){scanf("%d",&child);father[child]=id;}}int level,p;int ans[M];for(i=0;i<=n;i++){ans[i]=0;}int levelmax=0;for(i=1;i<=n;i++){if(nonleaf[i]==0){p=i;level=0;while(p!=1){p=father[p];level++;}ans[level]++;if(level>levelmax){levelmax=level;}}}for(i=0;i<=levelmax;i++){if(i!=levelmax)printf("%d ",ans[i]);else printf("%d\n",ans[i]);}}
阅读全文
0 0
- PAT 1004 求各层次叶子节点的数量
- C++二叉树的构建及求深度,叶子数量,层次遍历
- m叉树的叶子节点数量
- 二叉树二度节点和叶子节点的数量关系
- 求二叉树的叶子节点数目
- 二叉树节点推导既二度节点和叶子节点的数量关系
- 求满二叉树(哈夫曼树)叶子节点和非叶子节点的数目
- 网易——求二叉树最大叶子节点到最小叶子节点的距离
- 搜狐研究院 求二叉树最大叶子节点到最小叶子节点的距离
- PAT程序设计考题——甲级1004 遍历树节点(计算树每层的叶子节点数目)
- c语言实现二叉树先序,中序,后序(递归),层次遍历,求叶子节点个数及树的深度,下一篇写非递归的遍历
- 求二叉树的最大叶子节点距离(递归)
- 求树的总结点数量,叶子节点数
- 求二叉树的节点个数、叶子节点个数、第k层的节点个数
- 完全二叉树,知道总节点数,计算叶子结点的数量
- 二叉树的层次遍历,叶子节点的个数,是否为完全二叉树等等
- 二叉树:利用两个队列层次遍历输出指定层数的叶子节点
- 求从根节点到叶子节点的所有路径组成的数的和
- 如何修改tomcat ipv6 转换为 ipv4
- bean标签属性介绍
- windows batch file : backup the SAM files
- c语言参考书
- 180.Consecutive_Numbers
- PAT 1004 求各层次叶子节点的数量
- git实用操作
- Rviz教程(十一):Rviz in Stereo
- Python中的sorted函数以及operator.itemgetter函数
- [编程题] 分苹果
- linux线程实现机制(下)
- SaaS系统的接口对资源访问范围进行限制
- 组合模式
- 【Tomcat】一分钟教你eclipse如何配置tomcat