• HDProblem-1251统计难题(字典树)


     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 
     5 typedef struct tire
     6 {
     7     struct tire *next[26];//由于是小写字母,所以26,数字10,大小写字母52
     8     int v;
     9 }Tire;
    10 
    11 Tire *root;        //头指针
    12 
    13 void Insert(char *a)
    14 {
    15     int len,i;
    16     Tire *p=root,*q;
    17     for(i=0;i<strlen(a);i++)
    18     {
    19         int id=a[i]-'a';
    20         if(p->next[id]==0)
    21         {
    22             q=(Tire *)malloc(sizeof(Tire));//malloc(sizeof( ))表示分配内存空间
    23             q->v=1;                            //头文件是stdio.h
    24             for(int j=0;j<26;j++)
    25                 q->next[j]=0;
    26             p->next[id]=q;
    27             p=q;
    28         }
    29         else
    30         {
    31             p=p->next[id];
    32             p->v=p->v+1;
    33         }
    34     }
    35 }
    36 
    37 int findTire(char *str)
    38 {
    39     Tire *p=root;
    40     for(int i=0;i<strlen(str);i++)
    41     {
    42         int id=str[i]-'a';
    43         if(p->next[id]==0)
    44             return 0;
    45         else
    46             p=p->next[id];
    47     }
    48     return p->v;
    49 }
    50 
    51 int main()
    52 {
    53     int i;
    54     char temp[12];
    55     root=(Tire *)malloc(sizeof(Tire));
    56     for(i=0;i<26;i++)
    57         root->next[i]=0;
    58     root->v=2;
    59     while(gets(temp),strcmp(temp,""))   //stcmp(temp,"")控制空行结束                
    60         Insert(temp);                     //还可以用temp[0]!=''代替
    61     memset(temp,'',sizeof(temp));
    62     while(scanf("%s",temp)!=EOF)
    63         printf("%d
    ",findTire(temp));
    64 }

    不太懂的最好看看http://www.cnblogs.com/grubbyskyer/p/3843243.html这篇博客,简单明了

  • 相关阅读:
    双目对物体定位
    七个不变特征识别
    bmp和opencv格式转换
    职业规划
    input disp fprintf用法
    多线程
    访问权限
    机器人运动学仿真
    MOTOCOM32运动控制器编程
    回调函数以及钩子函数的概念
  • 原文地址:https://www.cnblogs.com/len950717/p/3874192.html
Copyright © 2020-2023  润新知