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

来源:互联网 发布:淘宝好评怎么改成差评 编辑:程序博客网 时间:2024/04/28 03:31

点击打开题目链接

#include <bits/stdc++.h>using namespace std;struct node{    char str[25];    int sum;    node *left, *right;};int n;node *Insert(node *root, char *st);//void Insert(node *(&root), char *st);insert2void Inorder(node *root);int main(){    char str[25];    node *root = NULL;    scanf("%d", &n);    getchar();    for(int i = 1; i <= n; i++)    {        gets(str);        for(int j = 0; str[j]; j++)        {            if(str[j] >= 'A' && str[j] <= 'Z')            {                str[j] += 32;            }        }        root = Insert(root, str);        //2:Insert(root, str);    }    Inorder(root);    return 0;}//Insert1node *Insert(node *root, char *st){    if(!root)    {        root = new node;        root->sum=1;        strcpy(root->str, st);        root->left = NULL;        root->right = NULL;    }    else    {        int x = strcmp(root->str, st);        if(x > 0)        {            root -> left = Insert(root->left, st);        }        else if(x < 0)        {           root -> right =  Insert(root->right, st);        }        else        {            root->sum++;        }    }    return root;}//Insert2//void Insert(node *(&root), char *st)//{//    if(!root)//    {//        root = new node;//        root->sum=1;//        strcpy(root->str, st);//        root->left = NULL;//        root->right = NULL;//    }//    else//    {//        int x = strcmp(root->str, st);//        if(x > 0)//        {//            Insert(root->left, st);//        }//        else if(x < 0)//        {//          Insert(root->right, st);//        }//        else//        {//            root->sum++;//        }//    }//}void Inorder(node *root){  if(root)  {    Inorder(root->left);    printf("%s %.2lf%\n", root->str, 100.0*(root->sum)/n);    Inorder(root->right);  }}
0 0
原创粉丝点击