功能    实现字符串快速检索

插入    
    void inset(string str)
    {
        int p=0;
        for(int i=0;str[i];i++)
        {
            int u=str[i]-'a';
            if(!son[p][u])
                son[p][u]=++idx;            //u 当前存的字母是什么
            p=son[p][u];                    //p父亲节点的编号 ,idx当前存的字母是占据的节点编号 
        }                                   // son 下一个节点(字母)的位置
        cut[p]++;                           // cnt 到第p个字母结束的字符串有几个
    }

查询
    int query(string str)
    {
        int p=0;
        for(int i=0;str[i];i++)
        {
            int u=str[i]-'a';
            if(!son[p][u])
                return 0;
            p=son[p][u];
        }
        return cut[p];
    }