首页 > 其他 > 详细

字典序 动物统计 输出姓名和个数

时间:2016-02-04 18:25:39      阅读:129      评论:0      收藏:0      [点我收藏+]

题目描述

在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单。科学家想判断这片森林中哪种动物的数量最多,但是由于数据太过庞大,科学家终于忍受不了,想请聪明如你的ACMer来帮忙

输入

第一行输入动物名字的数量N(1<= N <= 4000000),接下来的N行输入N个字符串表示动物的名字(字符串的长度不超过10,字符串全为小写字母,并且只有一组测试数据)

输出

输出这些动物中最多的动物的名字与数量,并用空格隔开(数据保证最多的动物不会出现两种以上)。

样例输入

10
boar
pig
sheep
gazelle
sheep
sheep
alpaca
alpaca
marmot
mole

样例输出

sheep 3

            很明显的 字典树问题  看起来好看 但是 不好用呀....    

所有的结构 算法 都是一种思想  重要的是掌握这一种思想  知道是怎么回事 然后在不同的环境下 对其进行一点点的 改变 就可以达到不同的效果.

 1 /*以后就要独立完成了 已经知道了思想   */
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<malloc.h>    // 好久都不用 忘了....
 5 struct node
 6 {
 7     int sum;           //用于计数
 8     node *next[26];   //    接下来的 有相同的 26个节点   
 9 };
10 int search (char *s,node *T)
11 {
12     int i,j,id;
13     node *p,*q;
14     p=T;
15     i=0;
16     while(s[i])
17     {
18         id=s[i]-a;
19         if(p->next[id]==NULL)
20         {
21             q=(node *)malloc(sizeof(node));
22             q->sum=0;
23             for(j=0;j<26;++j)
24                 q->next[j]=NULL;
25             p->next[id]=q;
26         }
27         p=p->next[id];
28         ++i;
29     }   //  在单词的  姐位数 开始 计数
30     (p->sum)++;
31     return p->sum;  //返回 计数
32 }
33 int main()
34 {
35     int n,i,num,max;
36     char temp[50];
37     char name[50];
38     while(scanf("%d",&n)!=EOF)   //输入 动物的数量
39     {
40         node *T;  //  申请一个 头结点 T
41         T=(node *)malloc(sizeof(node));  //申请空间  
42         T->sum=0;               //  数量置零
43         for(i=0;i<26;++i)
44             T->next[i]=NULL;   //  子树为空
45         max=0;
46         while(n--)       // 说好了   N  个 动物 
47         {
48             scanf("%s",temp); // 输入第一个动物的名字
49             num=search(temp,T);   //  传送过去  动物的名字插入树中  并且返回  该动物的数量
50             if(num>max)
51             {
52                 max=num;
53                 strcpy(name,temp);
54             }
55         }
56         printf("%s %d\n",name,max);
57     }
58     return 0;
59 }

 

 

 

字典序 动物统计 输出姓名和个数

原文:http://www.cnblogs.com/A-FM/p/5181956.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!