实现具有非转换的自动机的标准方法是什么?

时间:2013-09-15 06:04:06

标签: regex finite-automata deterministic

FA的简单实现会使节点看起来像:

struct Node {
    string label;
    Node*[char] trans;
}

但是如果你的一个过渡是“![a]”(除了'a'之外的任何东西)。而且你的字母太大了,无法存储所有可能不是'a'的字符。你明白我的意思吗?

编辑。我目前的猜测是

struct NFAState {
    string label;
    Node*[][char] trans;
    Node*[][char] notTrans;
    Node*[] epsTrans;
}

表示NFA节点。

1 个答案:

答案 0 :(得分:0)

您可以添加第二个Node*[char] notTrans;并存储非案例的所有节点。