資源簡介
DFA NFA 用java實現,代碼簡單易懂,并附有程序設計文檔。

代碼片段和文件信息
import?java.util.*;
import?java.io.*;
class?DFA
{
boolean?recognizeString(int?move[][]?int?accept_state[]?String?word)
{
????????????????int?step?=?0;
????????????????char?temp;
????????????????int?i;
????????????????for(i?=?0;?i?????????????????{
????????????????????????int?j?=?0;
????????????????????????temp?=?word.charAt(i);
????????????????????????j?=?temp?-?‘a‘;
????????????????????????step?=?move[step][j];?????????????????????
????????????????}
????????????????for(i?=?0;?i?????????????????{
????????????????????????if(step?==?accept_state[i])
???????????????????????????????return?true;
????????????????}
????????????????return?false;
}
public?static?void?main(String?args[])?throws?IOException
{
int?n?m;
BufferedReader?in?=?new?BufferedReader(new?FileReader(“DFA.in“));
StringTokenizer?st?=?new?StringTokenizer(in.readLine());
n?=?Integer.parseInt(st.nextToken());
m?=?Integer.parseInt(st.nextToken());
while?(n?!=?0)
{
int[][]?move?=?new?int[n][m];
for(int?i=0;?i {
st?=?new?StringTokenizer(in.readLine());
for?(int?j=0;?j move[i][j]?=?Integer.parseInt(st.nextToken());
}
String[]?temp?=?in.readLine().split(“\\s“);
int[]?accept?=?new?int[temp.length];
for?(int?i=0;?i String?word?=?in.readLine();
while?(word.compareTo(“#“)?!=?0)
{
DFA?dfa?=?new?DFA();
if?(dfa.recognizeString(move?accept?word))?System.out.println(“YES“);?else?System.out.println(“NO“);
word?=?in.readLine();
}
st?=?new?StringTokenizer(in.readLine());
n?=?Integer.parseInt(st.nextToken());
m?=?Integer.parseInt(st.nextToken());
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1048??2012-10-25?23:43??NFA\NFA.txt
?????目錄???????????0??2012-10-25?23:40??DFA\
?????文件??????????24??2012-10-24?11:09??DFA\DFA.bat
?????文件??????????89??2012-10-11?15:52??DFA\DFA.in
?????文件????????1736??2012-10-24?11:02??DFA\DFA.java
?????文件?????????821??2012-10-24?11:27??DFA\DFA.txt
?????目錄???????????0??2012-10-25?23:39??NFA\
?????文件??????????24??2012-10-24?11:28??NFA\NFA.bat
?????文件??????????92??2012-10-11?15:52??NFA\NFA.in
?????文件????????3206??2012-10-25?20:49??NFA\NFA.java
- 上一篇:java農夫過河問題
- 下一篇:Android自定義柱狀圖,帶有標注和左右滑動效果
評論
共有 條評論