摘要:
承接上一篇日志, 这一次实现的是创建NFA.输入是正则表达式对应的解析树(一个二叉树).输出是对应的NFA(一个有向图).思路也是递归实现, 对于一个树节点, 用两个子节点创建对应的NFA, 然后再根据树节点的类型将两个子NFA拼接起来.使用到的数据结构:struct State{ int code; //状态码, 一般是自动机中边上的字符, 特殊情况是S(开始), T(结束), FAKE(伪节点,导出空转移的边) State* out; //出边1 State* out1; //出边2 int lastList; //记录上一次所在的链表, 判重用的.};struct... 阅读全文