欢迎来到天天文库
浏览记录
ID:11828680
大小:15.68 KB
页数:4页
时间:2018-07-14
《编译原理实验有穷自动机.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、#include #include #include using namespace std; #define max 100 struct edge{ string first;//边的初始结点string change;//边的条件string last;//边的终点}; int N;//NFA的边数vector value; //求状态集合I的&-闭包,用&代替“空“string closure(string a,edge *b) { inti,j; for(i=0;i2、0;j3、} string sort(string t) { intk,i,j; chartt; for(i=0;i4、 cout<<"请输入各边信息:起点条件(空用&表示)终点,以输入#结束。"<>b[i].first; if(b[i].first=="#")break; else cin>>b[i].change>>b[i].last; } N=i; cout<<"请输入该NFA的初态及终态:"<>First>>Last; cout<<"请输入此NFA状态中的输入符号即边上的条件:"<>Change; T[x]=closure(First,b); T[x]=sort(T[x]); value5、.push_back(0); i=0; while(value[i]==0&&value.size()) { value[i]=1; for(j=0;j6、ge *DFA=new edge[max]; for(i=0;i<=x;i++)//构造DFA的各边{ for(j=0;j7、i++) {for(m=0;m<=x;m++) { if(DFA[i].first==T[m])cout<
2、0;j3、} string sort(string t) { intk,i,j; chartt; for(i=0;i4、 cout<<"请输入各边信息:起点条件(空用&表示)终点,以输入#结束。"<>b[i].first; if(b[i].first=="#")break; else cin>>b[i].change>>b[i].last; } N=i; cout<<"请输入该NFA的初态及终态:"<>First>>Last; cout<<"请输入此NFA状态中的输入符号即边上的条件:"<>Change; T[x]=closure(First,b); T[x]=sort(T[x]); value5、.push_back(0); i=0; while(value[i]==0&&value.size()) { value[i]=1; for(j=0;j6、ge *DFA=new edge[max]; for(i=0;i<=x;i++)//构造DFA的各边{ for(j=0;j7、i++) {for(m=0;m<=x;m++) { if(DFA[i].first==T[m])cout<
3、} string sort(string t) { intk,i,j; chartt; for(i=0;i4、 cout<<"请输入各边信息:起点条件(空用&表示)终点,以输入#结束。"<>b[i].first; if(b[i].first=="#")break; else cin>>b[i].change>>b[i].last; } N=i; cout<<"请输入该NFA的初态及终态:"<>First>>Last; cout<<"请输入此NFA状态中的输入符号即边上的条件:"<>Change; T[x]=closure(First,b); T[x]=sort(T[x]); value5、.push_back(0); i=0; while(value[i]==0&&value.size()) { value[i]=1; for(j=0;j6、ge *DFA=new edge[max]; for(i=0;i<=x;i++)//构造DFA的各边{ for(j=0;j7、i++) {for(m=0;m<=x;m++) { if(DFA[i].first==T[m])cout<
4、 cout<<"请输入各边信息:起点条件(空用&表示)终点,以输入#结束。"<>b[i].first; if(b[i].first=="#")break; else cin>>b[i].change>>b[i].last; } N=i; cout<<"请输入该NFA的初态及终态:"<>First>>Last; cout<<"请输入此NFA状态中的输入符号即边上的条件:"<>Change; T[x]=closure(First,b); T[x]=sort(T[x]); value
5、.push_back(0); i=0; while(value[i]==0&&value.size()) { value[i]=1; for(j=0;j6、ge *DFA=new edge[max]; for(i=0;i<=x;i++)//构造DFA的各边{ for(j=0;j7、i++) {for(m=0;m<=x;m++) { if(DFA[i].first==T[m])cout<
6、ge *DFA=new edge[max]; for(i=0;i<=x;i++)//构造DFA的各边{ for(j=0;j7、i++) {for(m=0;m<=x;m++) { if(DFA[i].first==T[m])cout<
7、i++) {for(m=0;m<=x;m++) { if(DFA[i].first==T[m])cout<
此文档下载收益归作者所有