FA 的简单实现会使节点看起来像:
struct Node {
string label;
Node*[char] trans;
}
但是如果你的转换之一是“![a]”(除了字符'a'之外的任何东西)。而且您的字母太大,无法存储所有可能不是“a”的字符。你明白我的意思吗?
编辑。我目前的猜测是
struct NFAState {
string label;
Node*[][char] trans;
Node*[][char] notTrans;
Node*[] epsTrans;
}
对于 NFA 节点。