- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理实验有穷自动机
#includeiostream?
#includestring?
#includevector?
using?namespace?std;?
#define?max?100?
struct?edge{?
string?first;//边的初始结点
string?change;//边的条件
string?last;//边的终点
};?
int?N;//NFA的边数
vectorint?value;?//求状态集合I的-闭包,用代替“空“
string?closure(string?a,edge?*b)?
{?inti,j;?
for(i=0;ia.length();i++)?
{?
for(j=0;jN;j++)?
{?
if(b[j].first[0]==a[i]b[j].change==)?
{?
a=a+b[j].last[0];?
}?
}?
}?
return?a;?
}? //状态集合I的a弧转换?
string?move(string?jihe,charch,edge?*b)?
{?
inti,j;?
string?s=;?
for(i=0;ijihe.length();i++)??
{?
?for(j=0;jN;j++)
{?
if(b[j].first[0]==jihe[i]b[j].change[0]==ch)?
s=s+b[j].last;?
}?
}?
return?s;?
}?
string?sort(string?t)?
{?
intk,i,j;?
chartt;?
for(i=0;it.length()-1;i++)?
{?
k=i;?
for(j=i+1;jt.length();j++)?
{?
if(t[j]t[k])k=j;?
}?
tt=t[k];t[k]=t[i];t[i]=tt;?
}?
return?t;
}?
void?main()?
{?
inti,j,x=0,h,length,m,d=0;?
string?Change;//输入符号
string?First,Last;//初态,终态,
string?T[max],ss;?
edge?*b=new?edge[max];?
cout请输入各边信息:起点条件(空用表示)终点,以输入#结束。endl;?
for(i=0;imax;i++)?
{?
cinb[i].first;?
if(b[i].first==#)break;?
else?
?cinb[i].changeb[i].last;?
}?
N=i;?
cout请输入该NFA的初态及终态:endl;?
cinFirstLast;?
cout请输入此NFA状态中的输入符号即边上的条件:endl;?
cinChange;?
T[x]=closure(First,b);?
T[x]=sort(T[x]);?
value.push_back(0);?
i=0;?
while(value[i]==0value.size())?
{?
value[i]=1;?
for(j=0;jChange.length();j++)?
{?
ss=;?
ss=move(T[i],Change[j],b);?
length=value.size();?
?
for(h=0;hlength;h++)?
{?
?if(T[h]==sort(closure(ss,b)))break;?
}?
if(h==length)?
{?
T[++x]=sort(closure(ss,b));?
value.push_back(0);?
?}
}?
i++;?
}?
edge?*DFA=new?edge[max];?
for(i=0;i=x;i++)//构造DFA的各边
{?
for(j=0;jChange.length();j++)?
{?
DFA[d].first=T[i];?
DFA[d].change=Change[j];?
ss=;?
ss=sort(closure(move(T[i],Change[j],b),b));?
for(m=0;m=x;m++)?
if(ss==T[m])DFA[d++].last=T[m];?
}?
}?
cout此NFA构造的DFA的各边信息如下:endl起点条件终点endl;?
for(i=0;id;i++)?
{
for(m=0;m=x;m++)?
{?
if(DFA[i].first==T[m])coutm?DF
A[i].change;?
}
for(m=0;m=x;m++)?
if(DFA[i].last==T[m])cout?mendl;;?
}?
cout该DFA的初态为:;?
for(m=0
您可能关注的文档
- 统(张清宇)doc - 社科网.pdf
- 统一混沌系统的全局指数吸引集的新结果.pdf
- 绝艳奇女子盘点,足以撑起半边天.pdf
- 绝对连续函数的两个充要条件.pdf
- 统计关系学习模型Markov逻辑网综述.pdf
- 统计力学笔记04 准静态假设和熵增原理.doc
- 给学生--新课标高中数学必修①第二章基本初等函数(Ⅰ)精讲.doc
- 统计与决策 半月刊 正态总体下参数的优化极大似然估计方法.pdf
- 统计填空总结创意小镇.pdf
- 统计学6-10章练习.docx
- 师缘主题课件最新完整版本.pptx
- 基于偏好MOEA_D算法的气发动机多目标优化标定研究.pdf
- 师范技能课件比赛一等奖最新完整版本.pptx
- 师范生初中美术说课课件最新完整版本.pptx
- 师范技能课件图片素材库最新完整版本.pptx
- Unit 2 Making a Difference Understanding ideas The Well that changed the world 教学设计-高中英语外研版(2019)必修第三册.docx
- 师范生技能大赛PPT课件语文最新完整版本.pptx
- 基于扭矩的双燃料发动机控制策略研究.pdf
- 1.2.1 等差数列的概念及其通项公式(教学设计)高二数学(北师大版2019选择性必修第二册).docx
- 师范文化课件最新完整版本.pptx
最近下载
- 统编版七年级历史下册第18课《统一多民族国家的巩固和发展》优质教案+导学案(含答案).doc
- 审查调查外查工作培训课件.pdf VIP
- 2024-2025学年初中音乐七年级上册(2024)湘艺版(2024)教学设计合集.docx
- 2024年部编版中考语文模拟试卷及答案.doc VIP
- 《萨班斯法案》课件.ppt VIP
- 2021电子科技大学-计算机体系结构实验报告01.pdf
- 《智能机器人系统》全套教学课件.pptx
- 2023年南京郑和外国语学校小升初分班考试数学模拟试卷及答案解析.pdf
- 统编版七年级历史下册第18课《统一多民族国家的巩固和发展》精美教案+导学案(含答案).doc
- AVL BOOST燃烧及传热模型介绍.pdf VIP
文档评论(0)