private void button7_Click(object sender, EventArgs e) { // 获取NFA文件的初始状态集和终止状态集 string initialStates = label3.Text; string finalStates = label4.Text;

// 将NFA数据转化为DFA数据
string dfaData = "";
string[] nfaLines = new string[listView1.Items.Count];
for (int i = 0; i < listView1.Items.Count; i++)
{
    string line = listView1.Items[i].SubItems[0].Text + "	" +
                  listView1.Items[i].SubItems[1].Text + "	" +
                  listView1.Items[i].SubItems[2].Text;
    nfaLines[i] = line;
}
DFA dfa = new DFA(nfaLines, initialStates, finalStates);
dfaData += "开始符:" + dfa.InitialState + ";;

"; dfaData += "终结符:" + dfa.FinalStates + ";; "; foreach (KeyValuePair<string, string> pair in dfa.Transitions) { dfaData += pair.Key + " "; dfaData += pair.Value + " "; }

// 显示DFA数据
listView2.Items.Clear();
string[] dfaLines = dfaData.Split(new string[] { "

" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < dfaLines.Length; i += 2) { string[] dfaLine1 = dfaLines[i].Split(' '); string[] dfaLine2 = dfaLines[i + 1].Split(' '); ListViewItem item = new ListViewItem(dfaLine1[0]); item.SubItems.Add(dfaLine1[1]); item.SubItems.Add(dfaLine2[2]); listView2.Items.Add(item); }

// 显示DFA文件的初始状态集和终止状态集
label5.Text = dfa.InitialState;
label7.Text = dfa.FinalStates;

}

C# 使用NFA数据生成DFA文件数据:VS软件中实现NFA到DFA转换

原文地址: https://www.cveoy.top/t/topic/jM3a 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录