【发布时间】:2015-05-29 20:48:57
【问题描述】:
我正在使用 C++ 创建 Hopcroft 的 DFA 最小化算法。
Hopcroft 算法的一部分是 - 最初 - 划分两个集合(P 具有接受和非接受状态,Q 仅具有非接受状态)。我已经有 P 组,我正在尝试从 P 中提取 Q。我正在使用以下代码:
for(int i=0; i<groupP.size(); i++)
if(groupP[i]->final)
groupQ.push_back(groupP[i]);
groupP和groupQ在其中:
vector<node*> groupQ;
vector<node*> groupP;
node 是我创建的一个结构,用于表示我的自动机的一个节点。保证布尔属性“final”已正确设置(非最终状态为 false,最终状态为 true)。
最后,我的问题是:通过执行我所做的操作将一个元素从向量复制到另一个元素是否正确?如果我从 groupP 修改复制元素的内容,那么 groupQ 中的相同元素也会被修改吗?
【问题讨论】: