正規式轉換為有窮自動機

2022-05-16 18:29:55 字數 1844 閱讀 6707

1 #include2 #include 3 #define  ok   1

4 #define error 0

5 #define maxregluarlong 40

6 #define maxstatelong 40

7 #define maxcahrslong 40

8 typedef int state;

9 int icurrentstate=0; //初態以1開始

10 int iprestate=0;

11 int ilastforkstate=0;

12 int iforkstate=0;

13 int imaxstate=0;

14 char cregluarsting[maxregluarlong]; //輸入的正規式字串

15 char ccharset[maxcahrslong]; //字符集

16 int istatematrix[maxstatelong][maxcahrslong]; //狀態轉換矩陣

17 state vstoreregluarsting()//把字串讀入乙個緩衝區中

18 22 state vpreprocessregluarsting()

23 //對字串進行預處理,去掉字串裡面的對分析不產生影響

24 35 }

36 i++;

37 }

38 return ok;

39 }

40 void vconstructstatematrix(char cchar,int istate)//構造狀態轉換矩陣

41 49 void vaanalyseregluarsting()//對字串進行從左到右的分析與處理

50 73 if(cregluarsting[i]=='|')

74

81 if(icharnumbeforl==1&&cregluarsting[i+2]=='|')

82 icurrentstate=iforkstate;

83 icharnumbeforl=0;

84 }

85 if(cregluarsting[i]==')')

86

90 }

91 }

92 else

93

101 }

102 }

103 }

104 void vprintfstateprojectfunction()

105

113 void vprintfnfa()//輸出nfa

114 \n");

125 printf("\n狀態集s為:

132 printf("}\n\n");

133 vprintfstateprojectfunction();

134 printf("\n初態集s0為:\n\n");

135 printf("終態集f為:",imaxstate);

136 }

137 void main()

138

1203正規式轉換為有窮自動機

1 include2 include 3 define ok 1 4 define error 0 5 define maxregluarlong 40 6 define maxstatelong 40 7 define maxcahrslong 40 8 typedef int state 9in...

1203正規式轉換為有窮自動機

1 include2 include 3 define ok 1 4 define error 0 5 define maxregluarlong 40 6 define maxstatelong 40 7 define maxcahrslong 40 8 typedef int state 9 i...

有窮自動機

problem description adfa 證明 adfa是可判定的。實驗方法 編寫乙個演算法 程式,對於任意給定的輸入,可以判定adfa。input 有多個測試序列,測試結束於測試檔案結束 每個測試序列的第一行為幾個正整數n m t a分別表示有n個狀態,從a開始m個小寫字母組成的字符集,第...