91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 200KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-05-12
  • 語言: Java
  • 標簽:

資源簡介

使用JAVA實現編譯原理的NFA確定化為DFA的文檔報告和java源代碼

資源截圖

代碼片段和文件信息

import?java.util.*;
import?java.io.*;

public?class?NToDDemo?{
public?static?void?main(String[]?args)?throws?IOException{
ArrayList?SList=new?ArrayList();//初態集
ArrayList?charList=new?ArrayList();//符號集
ArrayList?fList=new?ArrayList();//變換規則
ArrayList?endList=new?ArrayList();//終態集
String?c;
Scanner?sc=new?Scanner(System.in);
//輸入初態集
System.out.println(“請輸入NFA的初態集并以END結束:“);
do{
c=sc.next();
SList.add(c);
}while(!c.equals(“END“));
SList.remove(“END“);
//輸入符號集
System.out.println(“請輸入NFA的符號集:“);
charList.add(sc.next());
charList.add(sc.next());
//輸入終態集
System.out.println(“請輸入NFA的終態集并以END結束:“);
do{
c=sc.next();
endList.add(c);
}while(!c.equals(“END“));
endList.remove(“END“);
//輸入變換規則集
System.out.println(“請輸入NFA的變換規則并以END結束(格式:如A0B):“);
do{
c=sc.next();
//判斷是否終止
if(!c.equals(“END“)){
String?lastchnext;
char[]?temp=c.toCharArray();
last=String.valueOf(temp[0]);
ch=String.valueOf(temp[1]);
next=String.valueOf(temp[2]);
NToDDemo?nt=new?NToDDemo();
fList.add(nt.new?Nfanode(lastchnext));
}
else?break;
}while(true);
//顯示
NToDDemo?nt1=new?NToDDemo();
Nfa?N=nt1.new?Nfa(SListcharListfListendList);
System.out.println(“-------------------------------------------------“);
System.out.println(“當前的NFA如下:“);
N.display();
N.NfaToDfa();
}

//創建NFA節點類,儲存?狀態-符號-狀態?信息并設置顯示格式
class?Nfanode{
private?String?last;//當前狀態
private?String?ch;//轉換符號
private?String?next;//轉換后的狀態

public?Nfanode(String?lastInString?chInString?nextIn)?{
last=lastIn;
ch=chIn;
next=nextIn;
}
public?String?getLast()?{
return?last;
}
public?String?getCh()?{
return?ch;
}
public?String?getNext()?{
return?next;
}
@Override
public?String?toString()?{
//?TODO?自動生成的方法存根
return?(last+“->“+ch+next);//重寫toString方法設置該類的顯示格式
}

}
//創建Nfa類,儲存初態集,符號集,變換規則集終態集,設置轉換方法
class?Nfa{
private?ArrayList?SList;//初態集
private?ArrayList?charList;//符號集
private?ArrayList?fList;//變換規則
private?ArrayList?endList;//終態集

public?Nfa(ArrayList?SListInArrayList?charListInArrayList?fListInArrayList?endListIn){
SList=SListIn;
charList=charListIn;
fList=fListIn;
endList=endListIn;
}
public?void?display(){
System.out.println(“初態集是:“+SList);
System.out.println(“符號集是:“+charList);
System.out.println(“終態集是:“+endList);
System.out.println(“變換規則是:“);
Iterator?it?=fList.iterator();?
????????while(it.hasNext())?
????????{??
????????????Nfanode?element=(Nfanode)it.next();?
????????????System.out.println(element);??
????????}??

}
//核心代碼,NFA轉化為DFA,子集法
public?void?NfaToDfa(){
ArrayList?i=new?ArrayList();
ArrayList?i0=new?ArrayList();
ArrayList?i1=new?ArrayList();
i.add(SList);
for(int?j=0;j ArrayList?item=(ArrayList)i.get(j);
ArrayList?item0=new?ArrayList();
ArrayL

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????230912??2015-10-24?18:02??NFA確定化DFA\NFA確定化為DFA.wps

?????文件???????6392??2015-10-24?16:20??NFA確定化DFA\NToDDemo.java

?????目錄??????????0??2015-10-24?18:02??NFA確定化DFA

-----------?---------??----------?-----??----

???????????????237304????????????????????3


評論

共有 條評論

相關資源