之前提到了经过通过NFA来构造DFA(http://blog.youkuaiyun.com/betabin/article/details/8057787),现在继续来忽悠下,直接从正则表达式构造DFA。嗯,还有个附加的DFA极小化。
直接构造DFA,大致分为3步:构造语法分析树、计算followpos函数(难点)、生成DFA。
以正则表达式(a|b)*abb为例:
1、构造语法分析树:
这个不多说,看图应该就能明白:
(给每一个标号赋予一个独有的整数)
2、计算followpos函数:
首先需要计算一些辅助函数:nullable(n),firstpos(n),lastpos(n)→followpos(n)
(截图流又来了……)
嗯&#x