5-24 树种统计

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

输入首先给出正整数N(≤10^​5),随后N行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过30个英文字母和空格组成(大小写不区分)。
输出格式:

按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,保留小数点后4位。
5-24 树种统计_第1张图片
5-24 树种统计_第2张图片

#include
#include
#include
#define MAX 30
typedef char ElemType;
typedef struct node *Bintree;
typedef struct node
{
    ElemType s[MAX+1];
    int count;
    Bintree lchild;
    Bintree rchild;
};
Bintree Insert(Bintree BST,ElemType s[])
{
    if(!BST)
    {
        BST=malloc(sizeof(struct node));
        strcpy(BST->s,s);
        BST->count=1;
        BST->lchild=BST->rchild=NULL;
    }
    else
        if(strcmp(BST->s,s)<0)
            BST->rchild=Insert(BST->rchild,s);
        else if(strcmp(BST->s,s)>0)
            BST->lchild=Insert(BST->lchild,s);
        else
            BST->count++;
    return BST;
}
void Inorder(Bintree BST,int N)//中序遍历搜索二叉搜索树,就得到了按字典序列递增的输出序列
{
    if(BST)
    {
        Inorder(BST->lchild,N);
        printf("%s %.4f%%\n",BST->s,(float)BST->count/N*100);
        Inorder(BST->rchild,N);
    }
}
int main()
{
    int N,i;
    char s[MAX];
    Bintree T;
    T=NULL;
    scanf("%d",&N);
    getchar();
    for(i=0;ireturn 0;
}

你可能感兴趣的:(PTA数据结构与算法)