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;   
    }
  • 相关阅读:
    IDEA 远程调试springboot
    Mybatitas-plus实现逻辑删除
    java通过poi导出excel
    js 展示当前时间
    Linux环境下服务自启
    Spring自带定时器@Scheduled
    Quartz任务调度框架相关方法、参数理解
    Quartz 实现定时任务
    mysql 使用union(all) + order by 导致排序失效
    mongodb的查询操作
  • 原文地址:https://www.cnblogs.com/QQbai/p/2135272.html
Copyright © 2011-2022 走看看