µ±Ç°Î»ÖãºÊ×Ò³ > ±àÒëÔÀí¿Î³ÌÉè¼Æ±¨¸æ
±àÒëÔÀí¿Î³ÌÉè¼Æ±¨¸æ
С×é³ÉÔ±£ºÕÅ¿ì ѧºÅ£º2011014260
´Ë´Î¿ÎÉèÎÒÍê³ÉµÄ¹¤×÷Ö÷ÒªÓÐÁ½´ó²»·Ö£¬Ò»¸öÊÇÍê³ÉÁË´Ê·¨·ÖÎöÄ£¿éµÄÒ»²¿·ÖÄÚÈÝ£¬»¹ÓоÍÊǰѸ÷¸öÄ£¿éÕûºÏÔÚÒ»Æð£¬Éè¼ÆÒ»¸öMFC¶Ô»°¿ò³ÌÐò¡£ÏÂÃæÏêϸ½éÉÜÒ»ÏÂÎҵŤ×÷£º
NFAת»¯ÎªDFA£¬DFA×îС»¯(´Ê·¨·ÖÎöÄ£¿é£© NFAת³ÉDFAµÄÖ÷Òª¹¤×÷ÊÇÕÒ³öÿ¸ö½ÚµãµÄ€±Õ°ü£¬ÎÒÓõݹéµÄ·½·¨¶Ôÿ¸ö½ÚµãÇóÆä€±Õ°ü£¬¾ßÌå´úÂëÈçÏ£º
void getclosure(node a[100][100],int b[100],int c,int flag[100])
{
for(int i=0;i if(a[c][i].chr=='~'&&flag[i]==0) { if(b[d]==-1) { b[d]=i; d++; flag[i]=1; } else { } while(b[d]!=-1) d++; b[d]=i; d++; flag[i]=1; } getclosure(a,b,i,d,flag); } } NFAÉú³ÉDFAµÄÖ÷Òª´úÂëÈçÏ£º int nfa_dfa(node a[100][100],dnode b[20][20],string s) { string str=\ int flag1=0; for(int i=0;i if(sstr(s[i])) { d,int if(str.length()==0) str+=s[i]; else { for(int j=0;j flag1=0; break; } else flag1=1; if(flag1==1) { str+=s[i]; flag1=0; } } } } initd(b); b[19][19].size=str.length(); int ffflag[100]; initnt(ffflag); b[0][0].state=0; b[0][0].size=1; b[0][0].m[0]=0; getclosure(a,b[0][0].m,0,b[0][0].size,ffflag); int fflag=0; int flag=0; int c=0; while(fflag==0) { for(int t=0;t<=c;t++) for(int r=1;r<1+str.length();r++) { b[t][r].size=getp(b[t][0].m,a,b[t][r].m,str[r-1]); for(int i=0;i<=c;i++) { if(equals(b[i][0].m,b[t][r].m,b[i][0].size,b[t][r].size)) { b[t][r].state=b[i][0].state; flag=0; break; } else { flag=1; } } if(flag==1&&b[t][r].size!=0) { b[t][r].state=b[c][0].state+1; c++; b[c][0]=b[t][r]; fflag=0; } else fflag=1; } } return c+1; } ×îºó×îС»¯DFA£¬Ö÷ÒªºÍÊéÉϽ²µÄ²î²»¶à£¬ÏȰÑÖÕ̬ºÍÆäËû×´Ì¬Çø·Ö¿ª£¬È»ºóÔÙ½«µÈ¼Û״̬ºÏ²¢£¬¾ßÌå´úÂëÈçÏ£º int dfa_mdfa(int a[20][20],int flag1[20]) { int l1=0; while(a[l1][0]!=-1) { l1++; } int flag=1; while(flag==1) { flag=0; for(int i=0;i for(int j=i+1;j if(equalnd(a,i,j)&&flag1[i]==flag1[j]) { flag=1; flag1[j]=0; combinenode(a,i,j,flag1); j--; } l1--; } } } return l1; ¶þ¡¢½«´úÂë½øÐÐÕûºÏ£¬Éè¼ÆUI UIµÄÉè¼Æ±È½Ï¼ò½à£¬×ܹ²ÓÐÈý¸ö±à¼¿ò£¬Ò»¸ö´úÂëÊäÈë¿ò£¬Ò»¸ö½á¹ûÊä³ö¿ò£¬ Ò»¸öÌáʾÐÅÏ¢¿ò£¨Ö÷ÒªÓÃÀ´ÏÔʾ´íÎóÐÅÏ¢£©¡£ »¹ÓÐÒ»¸ö²Ëµ¥À¸£¬ÓÐÎļþ£¨°üÀ¨´ò¿ª¡¢±£´æ¡¢Í˳öÈý¸ö×ÓÏ¡¢Óï·¨£¨ÓÐÉÏÏÂÎÄÎÞ¹ØÎÄ·¨Ò»¸ö×ÓÏ¡¢´Ê·¨£¨ÓÐÕýÔò±í´ïʽһ¸ö×ÓÏ¡£ ´ò¿ªºÍ±£´æÎļþÖ÷ÒªÊÇÕë¶ÔÒÔÔ´³ÌÐò£¬¼¯ÊäÈë¿òµÄ´úÂ룬ÉÏÏÂÎÄÎÞ¹ØÎÄ·¨ÊÇÑ¡ÔñÎÄ·¨·ÖÎöËùÐèÒªµÄÉÏÏÂÎÄÎÞ¹ØÎÄ·¨£¬ÕýÔòÎÄ·¨ÊÇ´Ê·¨·ÖÎöËùÐèÒªµÄÕýÔòÎÄ·¨¡£³ÌÐò½çÃæÈçÏ£º ÏêϸµÄʹÓÃÔÚ±àÒëÔÀí¿Î³ÌÉè¼Æ³ÌÐòʹÓÃ˵Ã÷ÀïÃæÓÐÏêϸµÄÒýµ¼¡£ ¸Ã³ÌÐò»¹Óдʷ¨·ÖÎö¡¢Óï·¨·ÖÎö¡¢Öмä´úÂëÉú³É¡¢Ä¿±ê´úÂëÉú³ÉËĸö°´Å¥£¬ÆäÖдʷ¨·ÖÎöµÄÖ÷Òª³ÌÐò·ÅÔÚÁËtoken.hÖУ¬Óï·¨·ÖÎöºÍÖмä´úÂëÉú³É·ÅÔÚÁËÓï·¨·ÖÎö.hÖУ¬Ä¿±ê´úÂëÉú³É·ÅÔÚÁËdecode.hÖУ¬×îºóͨ¹ýbutton°´Å¥µÄÏìÓ¦º¯ÊýÀ´µ÷Óø÷¸öÄ£¿é£¬ÊµÏÖÁË´úÂëµÄÕûºÏ¡£
¹²·ÖÏí92ƪÏà¹ØÎĵµ