±àÒëÔ­Àí´Ê·¨·ÖÎöÓï·¨·ÖÎöʵÑ鱨¸æ ÏÂÔØ±¾ÎÄ

±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡

char p[50][50]; int i,j,k;

printf(\ÇëÊäÈëÎÄ·¨µÄ·ÇÖÕ½á·ûºÅ´®£º\getchar();

scanf(\ i=strlen(vn); memcpy(n,vn,i);

n[i]='\\0';

printf(\ÇëÊäÈëÎÄ·¨µÄÖÕ½á·ûºÅ´®£º\getchar();

scanf(\ i=strlen(vt); memcpy(t,vt,i);

t[i]='\\0'; scanf(\getchar();

printf(\ÇëÊäÈëÎÄ·¨²úÉúʽµÄÌõÊý£º\getchar(); { }

if(p[j][1]!='-'||p[j][2]!='>') {

printf(\return('\\0'); validity=0;

printf(\ÇëÊäÈëÎÄ·¨µÄµÚ%dÌõ£¨¹²%dÌõ£©²úÉúʽ£º\scanf(\

printf(\ÇëÊäÈëÎÄ·¨µÄ¿ªÊ¼·ûºÅ£º\

scanf(\ for(j=1;j<=i;j++)

getchar(); for(j=0;j<=i-1;j++)

} /*¼ì²âÊäÈë´íÎó*/ for(k=0;k<=i-1;k++)

{ /*·Ö½âÊäÈëµÄ¸÷²úÉúʽ*/ if(p[k][3]==p[k][0]) recur(p[k]); }

/******************************************* ½«µ¥¸ö·ûºÅ»ò·ûºÅ´®²¢ÈëÁíÒ»·ûºÅ´®

********************************************/

} return(s);

else

non_re(p[k]);

±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡

void merge(char *d,char *s,int type)

{ /*dÊÇÄ¿±ê·ûºÅ´®£¬sÊÇÔ´´®£¬type£½1£¬Ô´´®Öеġ® ^ ¡¯Ò»²¢²¢ÈëÄ¿´®£» }

/******************************************* ÇóËùÓÐÄÜÖ±½ÓÍÆ³ö^µÄ·ûºÅ

********************************************/ void emp(char c)

{ /*¼´ÇóËùÓÐÓÉ¡® ^ ¡¯ÍƳöµÄ·ûºÅ*/ }

/******************************************* Çóijһ·ûºÅÄÜ·ñÍÆ³ö¡® ^ ¡¯

char temp[10]; int i;

for(i=0;i<=count-1;i++) { }

if(right[i][0]==c&&strlen(right[i])==1) { }

temp[0]=left[i]; temp[1]='\\0'; merge(empty,temp,1); emp(left[i]);

type£½2£¬Ô´´®Öеġ® ^ ¡¯²»²¢ÈëÄ¿´®*/ for(i=0;i<=strlen(s)-1;i++) { }

else { }

for(j=0;;j++) {

if(j

break; {

d[j]=s[i]; d[j+1]='\\0'; break; } ;

int i,j;

if(type==2&&s[i]=='^')

if(j==strlen(d))

±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡

********************************************/ int _emp(char c)

{ /*ÈôÄÜÍÆ³ö£¬·µ»Ø1£»·ñÔò£¬·µ»Ø0*/

int i,j,k,result=1,mark=0; char temp[20]; temp[0]=c; temp[1]='\\0'; merge(empt,temp,1); if(in(c,empty)==1) {

if(i==count)

if(left[i]==c) /*ÕÒÒ»¸ö×ó²¿ÎªcµÄ²úÉúʽ*/ {

if(j==1&&in(right[i][0],empty)==1) return(1);

else if(j==1&&in(right[i][0],termin)==1) else {

return(0);

return(1); for(i=0;;i++)

return(0);

j=strlen(right[i]); /*jΪÓÒ²¿µÄ³¤¶È*/

for(k=0;k<=j-1;k++)

if(in(right[i][k],empt)==1)

}

}

continue; return(1);

else }

for(k=0;k<=j-1;k++) { }

result*=_emp(right[i][k]); temp[0]=right[i][k]; temp[1]='\\0'; merge(empt,temp,1);

mark=1;

if(mark==1)

continue;

{

if(result==0&&i

±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡

}

/******************************************* Åж϶ÁÈëµÄÎÄ·¨ÊÇ·ñÕýÈ·

********************************************/ int judge() { int i,j; }

/******************************************* Ç󵥸ö·ûºÅµÄFIRST

********************************************/ void first2(int i)

{ /*iΪ·ûºÅÔÚËùÓÐÊäÈë·ûºÅÖеÄÐòºÅ*/ char c,temp[20];

int j,k,m; c=v[i]; char ch='^'; emp(ch);

if(in(c,termin)==1) /*ÈôΪÖÕ½á·û*/ for(i=0;i<=count-1;i++) { } return(1);

if(in(left[i],non_ter)==0)

{ /*Èô×󲿲»ÔÚ·ÇÖÕ½á·ûÖУ¬±¨´í*/ }

for(j=0;j<=strlen(right[i])-1;j++) { }

if(in(right[i][j],non_ter)==0&&in(right[i][j],termin)==0&&right[i][j]!='^')

{ /*ÈôÓÒ²¿Ä³Ò»·ûºÅ²»ÔÚ·ÇÖÕ½á·û¡¢ÖÕ½á·ûÖÐÇÒ²»Îª¡® ^ ¡¯£¬±¨´í*/ }

printf(\validity=0; return(0); printf(\validity=0; return(0);

}

{

first1[i][0]=c;

first1[i][1]='\\0'; }

else if(in(c,non_ter)==1) /*ÈôΪ·ÇÖÕ½á·û*/