功能 实现字符串快速检索 插入 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]; }