Hardwood Species

http://poj.org/problem?id=2418

View Code
#include<stdio.h>
#include<malloc.h>
#include<string.h>
char s[31] ;
int sum  = 0 ;
struct BiTree
{
    int num ;
    char species[31] ;
    BiTree *l, *r ;
} ;
BiTree *t ;
BiTree *creat()
{
    BiTree *p ;
    p = (struct BiTree*)malloc(sizeof(struct BiTree)) ;
    p->l = NULL ;
    p->r = NULL ;
    p->num = 1 ;
    return p ;
}
void insert(char *s, BiTree *t)
{
    if(strcmp(s, t->species)==0)
    {
        t->num++ ;
        return ;
    }
    else
    if(strcmp(s, t->species)<0)
    {
        if(t->l==NULL)
        {
            t->l = creat() ;
            strcpy(t->l->species, s) ;
        }
        else
        insert(s, t->l) ;
    }
    else
    {
        if(t->r==NULL)
        {
            t->r = creat() ;
            strcpy(t->r->species, s) ;
            return ;
        }
        else
        insert(s, t->r) ;
    }
}
void inorder(BiTree *t)
{
    if(t!=NULL)
    {
        inorder(t->l) ;
        printf("%s %.4f\n", t->species, (t->num)*100.0/sum) ;
        inorder(t->r) ;
        return ;
    }

}
int main()
{
    //freopen("a.txt","r",stdin) ;
    char s[31] ;
    sum = 1 ;
    gets(s) ;
    t = creat() ;
    strcpy(t->species, s) ;
    while(gets(s)!=NULL)
    {
        sum++ ;
        insert(s, t) ;
    }
    inorder(t) ;
    return 0 ;
}

题目大意:给一个字符文本,每行一个字符串,统计不同的字符串出现的百分比。最后按ASCII排序输出不同字符串和出现的百分比。

数据结构中的各种树

http://blog.csdn.net/liuzhanchen1987/article/details/7324935

posted @ 2013-04-01 19:55  yelan@yelan  阅读(239)  评论(0编辑  收藏  举报