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

  • 大小: 16KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-29
  • 語(yǔ)言: 其他
  • 標(biāo)簽: NFA到DFA??

資源簡(jiǎn)介

這是一個(gè)可以實(shí)現(xiàn)正規(guī)式到NFA的轉(zhuǎn)換,NFA 轉(zhuǎn)換為DFA,DFA的最小化的程序

資源截圖

代碼片段和文件信息

#include?“iostream.h“
#include?“string.h“

//////////////////////////////////////////////////////////////////////////
//////////////////???Begin?Regular==>NFA??////////////////////////////////?
?
struct?Relation??//定義NFA中弧
{
?int?CurrentState;??//定義起始狀態(tài)?
?int?NextState;??//定義下一個(gè)狀態(tài)
?char?TransitionElement;??//定義輸入字符
};

struct?TokenState??//定義操作符號(hào)處理?xiàng)?
{
?int?BeginState;?//定義起始
?int?EndState;??//定義結(jié)束?
?int?preposition;?//定義記錄(一個(gè)大的區(qū)域)狀態(tài)開始時(shí)在波蘭式中的位置
};

int?IsTransitionElement(char?s)???//判斷輸入字符串是否合法?
{
?if?(s==‘0‘||s==‘1‘||s==‘$‘)
?return?1;
?else?return?0;
}

void?NFADiagram(Relation?*Rstringint?positionint?CurrentState
int?NextStatechar?TransitionElement)??//生成NFA中弧的信息??
{
?Rstring[position].CurrentState=CurrentState;
?Rstring[position].NextState=NextState;
?Rstring[position].TransitionElement=TransitionElement;
}

int?TokenDealing(char?*stringint?positionTokenState?*tokenint?*Rtoken)//雙目運(yùn)算
{
?
?
?if?(IsTransitionElement(string[position])?//型如?“輸入字符?輸入字符?操作符”
?&&IsTransitionElement(string[position-1]))
?return?0;
?else??if?(IsTransitionElement(string[position])??//型如?“輸入字符?操作符?輸入字符”
???????&&!IsTransitionElement(string[position-1]))
?return?1;
?else???//查找在波蘭式中區(qū)域的開始字符
?{
?int?firsttoken=token[Rtoken[position]].preposition;
?if(IsTransitionElement(string[firsttoken-1]))
?return?2;??????//型如?“輸入字符?|”?如果前一區(qū)域的結(jié)尾不存在*
?else?return?3;?????//如果前一區(qū)域的結(jié)尾存在*
?}
}

int?StarDealing(char?*stringint?position)
{
?if(IsTransitionElement(string[position]))
?return?1;
?else?
?return?0;
}

Relation?relation[25];
int?relationi=0;

void?ToNFA(char?*string)
{
?//Relation?relation[25];?
?TokenState?token[20];
?int?Rtoken[20];//記錄字符串中操作符號(hào)在操作符號(hào)列中的位置
?int?tokeni=1;?//定義操作符號(hào)在操作符號(hào)中的位置
?//int?relationi=0;
?int?secondtoken;
?token[0].BeginState=0;
?token[0].EndState=0;
?for?(unsigned?i=0;i?{
??if?(string[i]==‘*‘)
??{
???Rtoken[i]=tokeni;
???if?(IsTransitionElement(string[i-1]))??//處理型如“輸入字符?操作符*”
???{
??token[tokeni].BeginState=token[tokeni-1].EndState+1;
??token[tokeni].EndState=token[tokeni].BeginState?+?1;
??token[tokeni].preposition?=?i-1;
??NFADiagram(relationrelationi++token[tokeni].BeginState
????????????????token[tokeni].EndState?string[i-1]);
?//?cout<<“5?“;
//對(duì)處理1*有問題。

??NFADiagram(relationrelationi++token[tokeni].EndState
??????????????token[tokeni].BeginState??‘$‘);
??????NFADiagram(relationrelationi++token[tokeni].BeginState-1
??????????????token[tokeni].EndState?+?1??‘$‘);
??????NFADiagram(relationrelationi++token[tokeni].BeginState-1
??????????????token[tokeni].BeginState??‘$‘);
??????NFADiagram(relationrelationi++token[tokeni].EndState
??????????????token[tokeni].EndState+1??‘$‘);
??token[tokeni].BeginState?=?token[tokeni].BeginState-1;
??????token[tokeni].EndState=token[tokeni].EndState?+?1;


???}
???else???//處理型如?“操作符?操作符*”
???{
????token[tokeni].BeginState=token[tokeni-1].BeginState;

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????3489??2005-10-15?16:07??NFtoDFA\21codes.com.txt

?????文件????????588??2005-10-15?16:07??NFtoDFA\免費(fèi)空間.txt

?????文件???????1946??2005-10-15?02:13??NFtoDFA\下載說明.txt

?????文件??????18450??2005-05-30?18:42??NFtoDFA\compile_work2.cpp

?????文件???????3485??2005-05-23?19:15??NFtoDFA\compile_work2.dsp

?????文件????????551??2005-05-23?19:16??NFtoDFA\compile_work2.dsw

?????文件??????58368??2008-01-19?03:23??NFtoDFA\compile_work2.ncb

?????文件???????1221??2008-01-19?03:23??NFtoDFA\compile_work2.plg

?????目錄??????????0??2007-05-04?23:52??NFtoDFA\Debug

?????文件??????53760??2008-01-19?03:23??NFtoDFA\compile_work2.opt

?????目錄??????????0??2007-05-04?23:52??NFtoDFA

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

???????????????142076????????????????????12


評(píng)論

共有 條評(píng)論

相關(guān)資源