-
大小: 6KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-01-03
- 語言: C/C++
- 標(biāo)簽: NFA轉(zhuǎn)DFA??
資源簡介
(可運行,對應(yīng)博客為部分實驗報告)由非確定的有限自動機出發(fā)構(gòu)造與之等價的確定的有限自動機的辦法是確定的有限自動機的狀態(tài)對應(yīng)于非確定的有限自動機的狀態(tài)集合,即要使轉(zhuǎn)換后的DFA的每一個狀態(tài)對應(yīng)NFA的一組狀態(tài)。該DFA使用它的狀態(tài)去記錄在NFA讀入一個輸入符號后可能到達的所有狀態(tài),也就是說,在讀入符號串a(chǎn)1a2a3…an之后,該DFA處在這樣一個狀態(tài),該狀態(tài)表示這個NFA的狀態(tài)的一個子集T,而T是從NFA的開始狀態(tài)沿著某個標(biāo)記為a1a2a3…an的路徑可以到達的那些狀態(tài)。
代碼片段和文件信息
#include?
#include?
#define?MAXS?100?
using?namespace?std;?
string?NODE;?//結(jié)點集合?
string?CHANGE;?//終結(jié)符集合?
int?N;????//NFA邊數(shù)?
struct?edge{?
string?first;?
string?change;?
string?last;?
};?
struct?chan{?
string?ltab;?
string?jihe[MAXS];?
};?
void?kong(int?a)?
{?
int?i;?
for(i=0;i???cout<<‘?‘;?
}?
//排序
?
void?paixu(string?&a)?
{?
?int?ij;?
char?b;?
for(j=0;j ???for(i=0;i ????if(NODE.find(a[i])>NODE.find(a[i+1]))?
????{?
?????b=a[i];?
?????a[i]=a[i+1];?
?????a[i+1]=b;?
????}??
}
?
void?eclouse(char?cstring?&heedge?b[])?
{?
int?k;?
for(k=0;k {?
???if(c==b[k].first[0])?
????if(b[k].change==“*“)?
????{?
?????if(he.find(b[k].last)>he.length())?
??????he+=b[k].last;?
?????eclouse(b
- 上一篇:MFC計算器源代碼
- 下一篇:計算機圖形學(xué)課程設(shè)計源代碼
評論
共有 條評論