zoukankan      html  css  js  c++  java
  • 字典树

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    struct T {
        T * ch[26];  
        int n, flag;
    }rt;
    char in[15];
    void init ( T * t ) {
         for ( int i = 0; i < 26; ++ i ) t->ch[i] = NULL;    
         t->n = t->flag = 0;
    }
    void insert ( T *t, char *in ) {
         if ( *in ) {
             if ( t->ch[ *in - 'a' ] == NULL ) {
                t->ch[ *in - 'a' ] = ( T * ) malloc ( sizeof ( T ) );
                init ( t->ch[ *in - 'a' ] );    
             }    
             t->ch[ *in - 'a' ]->n ++;
             insert ( t->ch[ *in - 'a' ], in + 1 );
         } else {
             t->flag = 1;     
         }   
    }
    int find ( T *t, char *in ) {
        if ( t->ch[ *in - 'a' ] != NULL ) {
            if ( *( in + 1 ) == '\0' ) {
                return t->ch[ *in - 'a' ]->n;    
            }
            return find ( t->ch[ *in - 'a' ], in + 1 );
        } else return 0;   
    }
    int main ()
    {
        while ( gets ( in ) ) {
              if ( strlen ( in ) == 0 ) break;
              insert ( &rt, in );     
        }
        while ( ~scanf ( "%s", in ) ) {
              printf ( "%d\n", find ( &rt, in ) );     
        }
        return 0;   
    }
  • 相关阅读:
    [树状数组]JZOJ 4658 小Z调顺序
    [差分数组]JZOJ 3187 的士
    [BFS]JZOJ 4671 World Tour
    [BFS]JZOJ 4672 Graph Coloring
    [数学]JZOJ 4673 LCS again
    shell:正则表达式和文本处理器
    开发脚本自动部署及监控
    Linux中的重启命令
    nginx和nfs
    网络相关配置
  • 原文地址:https://www.cnblogs.com/QQbai/p/2135272.html
Copyright © 2011-2022 走看看