partial Section 2.3
parent
23e7ae60dc
commit
582592d40d
@ -0,0 +1,20 @@
|
||||
void buildFail()
|
||||
{
|
||||
int h = 0, t = 0;
|
||||
root->fail = &virt;
|
||||
que[t++] = root;
|
||||
while (h < t)
|
||||
{
|
||||
node *cur = que[h++];
|
||||
for (int i = 0; i < 26; i++)
|
||||
{
|
||||
node *f = cur->fail;
|
||||
while (f->trans[i] == 0) f = f->fail;
|
||||
f = f->trans[i];
|
||||
if (cur->trans[i])
|
||||
(que[t++] = cur->trans[i])->fail = f;
|
||||
else
|
||||
cur->trans[i] = f;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Loading…
Reference in new issue