机器人的柔顺控制概述

2021-07-21 树状数组

  返回  

Trie树(字典树)模板

2021/7/21 19:15:39 浏览:

Trie 树

高效的存储和查找字符串集合的数据结构

存储公共前缀
在这里插入图片描述

#include <iostream>
using namespace std;
const int N=100010;
int son[N][26],cnt[N];
int idx=0;//下标是0的点,既是根结点,又是空结点

void insert(char str[]){
    int p=0;
    for(int i=0;str[i];i++){//c++ char[]末尾是'/0'可作为停止条件
      int u=str[i]-'0';
      if(!son[p][u])son[p][u]=++idx;//如果该结点不存在,创建结点
      p=son[p][u];//
    }
    cnt[p]++;
}
int query(char str[]){
    int p=0;
    for(int i=0;str[i];i++){
        int u=str[i]-'0';
        if(!son[p][u])return 0;
        p=son[p][u];
    }
    return cnt[p];
}
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        char op;
        char str[N];
        
        cin>>op;
        cin>>str;
        
        if(op=='Q'){
            int n=query(str);
            cout<<n<<endl;
        }else if(op=='I'){
            insert(str);
        }
    }
}

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号