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