FA的简单实现会使节点看起来像:
struct Node {
string label;
Node*[char] trans;
}
但是如果你的一个过渡是“![a]”(除了'a'之外的任何东西)。而且你的字母太大了,无法存储所有可能不是'a'的字符。你明白我的意思吗?
编辑。我目前的猜测是
struct NFAState {
string label;
Node*[][char] trans;
Node*[][char] notTrans;
Node*[] epsTrans;
}
表示NFA节点。
答案 0 :(得分:0)
您可以添加第二个Node*[char] notTrans;
并存储非案例的所有节点。