字典树
数组储存:
const int charsize = 26;//字符集大小
//记录此节点的子节点编号
//这里默认的全是小写字母
int nxt[maxn + 1][charsize];
//表示此编号节点是否为终止节点
bool isend[maxn + 1];
//cnt储存当前的节点编号数
int root = 0, cnt = 0;字典树的插入
//s为等待插入的字符串,下标从1开始,len为字符串长度
void insert(char s[], int len) {
int now = 0;
for (int i = 1; i <= len; i++) {//注意题意是从1至n还是从0至n-1
int x = s[i] - 'a';
if (!nxt[now][x]) {//now表示当前位置编号,x表示下一个节点的字母(在这里默认是小写字母)
nxt[now][x] = ++cnt;
}
now = nxt[now][x];
}
isend[now] = true;
}字典树的查找:
字典树的struct存储方式
struct存储方式Last updated