Jackiesteed

www.github.com/jackiesteed

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年5月21日

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