#include<bits/stdc++.h>
using namespace std;
int n;
struct tree
{
char data[22];
int cnt;
struct tree *lc,*rc;
};
void creat(struct tree*&t,char s[])
{
if(t==NULL)
{
t=(struct tree *)malloc(sizeof(struct tree));
strcpy(t->data,s);
t->cnt=1;
t->rc=t->lc=NULL;
}
else
{
int k=strcmp(t->data,s);
if(k>0)
creat(t->lc,s);
else if (k<0)
creat(t->rc,s);
else
t->cnt++;
}
}
void in(struct tree *t)
{
if(t)
{
in(t->lc);
printf("%s %.2lf%c\n",t->data,t->cnt*100.0/n,'%');
in(t->rc);
}
}
int main()
{
scanf("%d\n",&n);
struct tree *root=NULL;
for(int i=0; i<n; i++)
{
char str[22];
gets(str);
for(int i=0; str[i]!='\0'; i++)
if(str[i]>='A'&&str[i]<='Z')
str[i]+=32;
creat(root,str);
}
in(root);
}
SDUT3375数据结构实验之查找三:树的种类统计
最新推荐文章于 2020-05-18 13:00:32 发布