数据结构实验之查找三:树的种类统计

Time Limit: 400 ms Memory Limit: 65536 KiB

Problem Description

随着卫星成像技术的应用,自然资源研究机构可以识别每一个棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。

Input

输入一组测试数据。数据的第1行给出一个正整数N (n <= 100000),N表示树的数量;随后N行,每行给出卫星观测到的一棵树的种类名称,树的名称是一个不超过20个字符的字符串,字符串由英文字母和空格组成,不区分大小写。

Output

按字典序输出各种树的种类名称和它占的百分比,中间以空格间隔,小数点后保留两位小数。

Sample Input

2

This is an Appletree

this is an appletree

Sample Output

this is an appletree 100.00%

题解:数据量比较大,需要用到字典树。

字典树跟排序树类似,根据字符串的字典序进行的排序

#include <stdio.h>
#include <stdlib.h>
#include <string.h> char s[25]; typedef struct node
{
char s[25];
int num;
struct node *l,*r;
}node; node *newNode()
{
node *t;
t = (node *)malloc(sizeof(node));
t->l = t->r = NULL;
return t;
} node * build(node *t)
{
if(t!=NULL)
{
if(strcmp(t->s,s)==0)
t->num ++;
else if(strcmp(t->s,s)<0)
t->r = build(t->r);
else if(strcmp(t->s,s)>0)
t->l = build(t->l);
return t;
}
t = newNode();
strcpy(t->s,s);
t->l = NULL;
t->r = NULL;
t->num = 1;
return t;
} void show(node *t,int n)
{
if(t)
{
show(t->l,n);
printf("%s ",t->s);
printf("%.2f%%\n",1.0*t->num/n*100);
show(t->r,n);
}
} void del(node *t)
{
if(t)
{
del(t->r);
del(t->l);
free(t);
}
} int main()
{
int n,i,j;
node *t;
scanf("%d",&n);
t = NULL;
getchar();
for(i=0;i<n;i++)
{
gets(s);
int len = strlen(s);
for(j=0;j<len;j++)
if(s[j]>='A'&&s[j]<='Z')
s[j] = s[j] - 'A' + 'a';
//cout<<s<<endl;
t = build(t);
//printf("%d\n",t->num);
}
show(t,n);
del(t);
return 0;
}

SDUT-3375_数据结构实验之查找三:树的种类统计的更多相关文章

  1. SDUT 3375 数据结构实验之查找三:树的种类统计

    数据结构实验之查找三:树的种类统计 Time Limit: 400MS Memory Limit: 65536KB Submit Statistic Problem Description 随着卫星成 ...

  2. SDUT 3374 数据结构实验之查找二:平衡二叉树

    数据结构实验之查找二:平衡二叉树 Time Limit: 400MS Memory Limit: 65536KB Submit Statistic Problem Description 根据给定的输 ...

  3. SDUT 3311 数据结构实验之串三:KMP应用

    数据结构实验之串三:KMP应用 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 有n个小朋友 ...

  4. SDUT 3347 数据结构实验之数组三:快速转置

    数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 转置运算是一 ...

  5. SDUT OJ 数据结构实验之二叉树三:统计叶子数

    数据结构实验之二叉树三:统计叶子数 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...

  6. SDUT OJ 数据结构实验之串三:KMP应用

    数据结构实验之串三:KMP应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  7. SDUT OJ 数据结构实验之排序三:bucket sort

    数据结构实验之排序三:bucket sort Time Limit: 250 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem D ...

  8. SDUT OJ 数据结构实验之链表三:链表的逆置

    数据结构实验之链表三:链表的逆置 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...

  9. SDUT 3400 数据结构实验之排序三:bucket sort

    数据结构实验之排序三:bucket sort Time Limit: 150MS Memory Limit: 65536KB Submit Statistic Problem Description ...

随机推荐

  1. C++标准输入问题

    1.读取数据量不定的输入数据 e.g. #include <iostream> using namespace std; void main() { ,val=; while(cin> ...

  2. Java通过接口或者抽象类调用方法的时候,怎么知道调用的是哪个实现类里的方法?

    用对象的 getClass() 方法获得它的类,之后就可以随意去判断这是哪个实现类了. 比如代码1-1所示的JDBC连接池的代码,我们想要知道conn调用的close方法是释放连接还是归还连接, 我们 ...

  3. Python爬虫笔记【一】模拟用户访问之验证码清理(4)

    清理图片,对图片进行二值化,去边框,去干扰线,去点 from PIL import Image from pytesseract import * from fnmatch import fnmatc ...

  4. mapreduce join操作

    上次和朋友讨论到mapreduce,join应该发生在map端,理由太想当然到sql里面的执行过程了 wheremap端 join在map之前(笛卡尔积),但实际上网上看了,mapreduce的笛卡尔 ...

  5. pycharm2018激活

    pyCharm最新2018最新激活码 选择 Activate new license with License server (用license server 激活) 在 License sever ...

  6. 第02章 Python快速入门

    007.快速入门,边学边用 008.变量类型 print(type(变量))    查看变量的了类型     现在常用的变量的类型有整型.浮点型.字符型 009.List基础模块 类型转换:str(8 ...

  7. UVA10215The Largest/Smallest Box(小数精度)

    本身很容易却因为评测机有毒的一道题,,,看网上题解说最后一个答案要加一个很小的数才能AC,据说是因为没有speci judge #include <iostream> #include & ...

  8. Django项目:CRM(客户关系管理系统)--51--42PerfectCRM实现AJAX全局账号注册

    #urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...

  9. A Simple Problem with Integers POJ - 3468 (线段树)

    思路:线段树,区间更新,区间查找 #include<iostream> #include<vector> #include<string> #include< ...

  10. 项目中的那些事---下载pdf文件

    最近做了一个下载pdf文档的需求,本以为使用HTML5中<a>标签的属性download就能简单搞定,不料IE竟然不支持这一简单粗暴的H5新特性,而是直接在网页中打开, 于是各种搜索之后得 ...