数据结构实验之查找三:树的种类统计
来源:互联网 发布:开淘宝旗舰店什么条件 编辑:程序博客网 时间:2024/06/05 20:18
数据结构实验之查找三:树的种类统计
Time Limit: 400MS Memory Limit: 65536KB
Submit Statistic
Problem Description
随着卫星成像技术的应用,自然资源研究机构可以识别每一个棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。
Input
输入一组测试数据。数据的第1行给出一个正整数N (n <= 100000),N表示树的数量;随后N行,每行给出卫星观测到的一棵树的种类名称,树的名称是一个不超过20个字符的字符串,字符串由英文字母和空格组成,不区分大小写。
Output
按字典序输出各种树的种类名称和它占的百分比,中间以空格间隔,小数点后保留两位小数。
Example Input
2This is an Appletreethis is an appletree
Example Output
this is an appletree 100.00%
Hint
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n;
struct Tree
{
char ch[22];
int data;
Tree *left,*right;
};
Tree *f(Tree *head,char *s)
{
if(!head)
{
head=new Tree;
head->data=1;
strcpy(head->ch,s);
head->left=NULL;
head->right=NULL;
}
else
{
int cmp=strcmp(head->ch,s);
if(cmp>0)
{
head->left=f(head->left,s);
}
else if(cmp<0)
{
head->right=f(head->right,s);
}
else
{
head->data++;
}
}
return head;
}
void Mid(Tree *head)
{
if(head)
{
Mid(head->left);
printf("%s %.2lf%c\n",head->ch,head->data*100.0/n,'%');///!!!!!!!点2
Mid(head->right);
}
}
int main()
{
cin>>n;
getchar();
Tree *head=NULL;
for(int j=0;j<n;j++)
{
char a[22];
gets(a);
for(int i=0;a[i];i++)
{
if(a[i]>='A' && a[i]<='Z')
{
a[i]+=32;
}
}
head=f(head,a);
}
Mid(head);
return 0;
}
阅读全文
0 0
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计 (STL)
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- SDUT3375数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- SDUTACM 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计(二叉排序树)
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 数据结构实验之查找三:树的种类统计
- 开除了没情商的“技术大神”后,整个团队都好起来了
- Python 的 zip 函数用法
- spring系列(五):切面编程(aop)3
- Linux3.x 内核驱动框架的变动(ing)
- CSDN-markdown编辑器
- 数据结构实验之查找三:树的种类统计
- com.mchange.v2.c3p0.ComboPooledDataSource参数详细
- python学习
- poisson distribution
- 单片机ISP、IAP和ICP几种烧录方式的区别
- 设计模式在 TypeScript 中的应用
- 字符逆序
- SDUT ACM 实验九 C语言实验——保留字母
- svn: Checksum mismatch for 报错