±àÒëÔ­Àí ¸´Ï°×ÊÁÏ ÏÂÔØ±¾ÎÄ

¶þ¡¢Ëã·ûÓÅÏÈËã·¨

ÉèÖÃÁ½¸ö¹¤×÷Õ»£ºÒ»¸öÊÇÓÃÀ´¼Ä´æÔËËã·ûµÄOPTR£¬ÁíÒ»¸öΪÓÃÀ´¼Ä´æ²Ù×÷Êý»ò½á¹ûµÄOPND¡£Ëã·¨ÃèÊöÈçÏ£º

(1)Ê×ÏÈÖòÙ×÷ÊýÕ»OPNDΪ¿Õ£¬½«#ÈëOPTRÕ»¡£

(2)ÒÀ´Î¶ÁÈë±í´ïʽÖÐÿ¸öµ¥´Ê£¬ÈôÊDzÙ×÷ÊýÔò½øOPNDÕ»£¬ÈôÊÇÔËËã·ûÔòת[3]¡£

(3)²éËã·ûÓÅÏȹØÏµ±í£¬½«µ±Ç°¶ÁÈëµÄÔËËã·û¦È2ÓëOPTRÕ»¶¥ÔªËئÈ1½øÐбȽϣ¬ Èô ¦È1<¦È2£¬Ôò£º¦È2½øÕ»£¬×ª(2)£»Èô ¦È1£½¦È2 ,Èç¦È2Ϊ#£¬Ôò·ÖÎö³É¹¦£»·ñÔò£¬OPTRÕ»¶¥ÔªËئÈ1³öÕ»£¬²¢×ª£¨£¨3£©£»Èô¦È1£¾¦È2,Ôò³öÕ»OPNDÕ»¶¥ÔªËØÖÁb£¬ÓÖ³öÕ»ÆäÕ»¶¥ÔªËØÖÁa£¬³öÕ»OPTRÕ»¶¥ÔªËØÖÁt£¬½øÐÐÔËËãr=a t b (tΪÔËËã·û)£¬²¢½«½á¹ûr´æ ÈëÕ»OPNDºóת£¨£¨2£©¡£Èô¦È1ºÍ¦È2Ö®¼äÎÞÓÅÏȹØÏµ£¬Ôò±¨´í¡£

Àý£º¸ù¾ÝǰÀýÎÄ·¨£¬¶Ô5*(1+(4)×÷Ö±¹ÛËã·ûÓÅÏÈ·ÖÎö£¬Æä¹ý³ÌÈçÏ£º

6.3.2Ëã·ûÓÅÏÈÎÄ·¨

Èç¹ûÎÄ·¨G=£¨ VN£¬VT£¬P£¬S£©Öв»´æÔÚÐÎÈç A¡ú¡­BC¡­µÄ²úÉúʽ£¬ÆäÖÐB¡¢CΪ·ÇÖÕ½á·û£¬Ôò³ÆÖ®ÎªËã·ûÎÄ·¨(OG ¡ªoperator Grammar)¡£¼´Èç¹ûÎÄ·¨£ÇÖв»´æÔÚ¾ßÓÐÏàÁÚ·ÇÖÕ½á·ûµÄ²úÉúʽ£¬Ôò³ÆÎªËã·ûÎÄ·¨¡£ Ò»¡¢Ëã·û¼äµÄÓÅÏȹØÏµ

ÉèG=£¨VN£¬VT£¬P£¬S£©ÎªOG£¬Ôò¶¨Òå:

?a¡Ôb A¡ú¡­ab¡­¡ÊP»òÕß A¡ú¡­aBb¡­¡ÊP

a¡Ú A¡ú¡­aB¡­?b¡ÊPÇÒ(B=+>b¡­»òÕßB=+>Cb¡­) a¡Û A¡ú¡­Bb¡­?b¡ÊPÇÒ(B=+>¡­a»òÕßB=+>¡­aC)

¶þ¡¢Ëã·ûÓÅÏÈÎÄ·¨

ÉèG=£¨V£¬T£¬P£¬S£©ÎªOG£¬Èç¹û a,b?¡ÊVT, a¡Ôb,a¡Úb,a¡ÛbÖÁ¶àÓÐÒ»¸ö³ÉÁ¢£¬Ôò³ÆÖ®ÎªËã·ûÓÅÏÈÎÄ·¨(OPG ¡ªOperator Precedence Grammar)¡£

ÔÚÎަŲúÉúʽµÄËã·ûÎÄ·¨£ÇÖУ¬Èç¹ûÈÎÒâÁ½¸öÖÕ½á·ûÖ®¼äÖÁ¶àÓÐÒ»ÖÖÓÅÏȹØÏµ£¬Ôò³ÆÎªËã·ûÓÅÏÈÎÄ·¨¡£ ÊÚ¿Î˳Ðò£º10

½ÌѧĿµÄ£ºÈÃѧÉúÕÆÎÕËã·ûÓÅÏȹØÏµ±íµÄ¹¹Ôì¡¢Ëã·ûÓÅÏÈ·ÖÎöËã·¨¡¢ÓÅÏȺ¯Êý

µÄ¼ÆË㣬Á˽âËã·ûÓÅÏÈ·ÖÎö·¨µÄ¾ÖÏÞÐÔ¡£

½ÌÑ§ÖØµã£ºËã·ûÓÅÏȹØÏµ±íµÄ¹¹Ôì¡¢Ëã·ûÓÅÏÈ·ÖÎö·¨µÄÓ¦Óá¢ÓÅÏȺ¯ÊýµÄ¼ÆËã ½ÌѧÄѵ㣺Ëã·ûÓÅÏȹØÏµ±íµÄ¹¹Ôì¡¢Ëã·ûÓÅÏÈ·ÖÎö·¨µÄÓ¦Óá¢ÓÅÏȺ¯ÊýµÄ¼ÆËã ÊÚ¿Îѧʱ£º2ѧʱ

½Ìѧ·½Ê½£º¶àýÌå½²ÊÚ ½ÌѧÄÚÈÝ£º

6.3.3Ëã·ûÓÅÏȹØÏµ±íµÄ¹¹Ôì

Ò»¡¢Óɶ¨ÒåÖ±½Ó¹¹ÔìÓÅÏȾØÕó ¶ÔÓï·¨±äÁ¿A¶¨Ò壺

1¡¢FIRSTVT(A) ={b| A?+b¡­»òÕß A?+Cb¡­} 2¡¢LASTVT(A) ={b|A?+¡­b»òÕßA?+¡­bC}

Ôò¶Ô²úÉúʽA¡úX1X2¡­Xn°´ÈçÏ·½·¨¹¹Ôì¸÷ÎÄ·¨·ûºÅ¶ÔÖ®¼äµÄÓÅÏȹØÏµºóÌîÈëËã·ûÓÅÏȹØÏµ±í£º

(1)Èç¹ûXiXi+1¡Ê VTVT Ôò£º Xi¡ÔXi+1

(2)Èç¹ûXiXi+1Xi+2¡ÊVTVNVT Ôò£ºXi¡ÔXi+2

(3)Èç¹ûXiXi+1¡ÊVTVN Ôò£º a?¡ÊFIRSTVT(Xi+(1)£¬Xi¡Úa (4)Èç¹ûXiXi+1¡ÊVNVT Ôò£ºa?¡ÊLASTVT(Xi)£¬ a¡ÛXi+1

Àý£ºÎÄ·¨G[E?]£º E?¡ú#E# E¡úE+T|T T¡úT*F|F F¡úP^F|P P¡ú(E) |i,ÔòÇó³ö·ÇÖÕ½á·ûµÄFIRSTVT¡¢ LASTVT¼¯£º

ÏÖ¶ÔÐÎÈçA¡ú¡­aB¡­µÄ¹æÔò¸ù¾ÝFIRSTVT¼¯Çó¡Ú¹ØÏµ£¬¶ÔÐÎÈçA¡ú¡­Bb¡­µÄ¹æÔò¸ù¾ÝLASTVT¼¯Çó¡Û¹ØÏµ£¬ÈçÏÂ±í£º

Óɶ¨ÒåÖ±½ÓÇó³öǰÀýµÄÓÅÏȾØÕóΪ £º

¶þ¡¢ÓÃËã·¨¹¹ÔìÓÅÏȾØÕó

1¡¢ÓÅÏȾØÕóµÄ¹¹ÔìËã·¨»ùÓÚÁ½ÌõÔ­Ôò

(1)ÈôÓйæÔòA¡úa¡­»òA¡úBa¡­,Ôòa¡ÊFIRSTVT(A) ;

(2)Èôa¡ÊFIRSTVT(B)ÇÒÓйæÔòA¡úB¡­,Ôòa¡ÊFIRSTVT(A) ; 2¡¢ÇóFIRSTVT¼¯µÄËã·¨²½Öè

ÏÈÉèÁ¢Ò»¸ö²¼¶ûÊý×éF[A,a]£¬ÆäÖµÎªÕæÊ±£¬µ±ÇÒ½öµ±a¡ÊFIRSTVT(A)£¬Ôò£º

µÚ1²½£º°´Ô­Ôò(1)¶Ôÿ¸öÊý×éÔªËØF[A,a]ÖóõÖµ£¬²¢¶ÔF[A,a]³õÖµÎªÕæµÄ·ûºÅ¶Ô(A,a)ÈëÕ»£»

µÚ2²½£º´¦ÀíÕ»¡£µ±Õ»²»¿Õʱ£¬µ¯³öÕ»ÏîÔªËØ(B,a)£¬ÔÙ°´Ô­Ôò(2)£¬¶ÔÐÎÈçA¡úB¡­µÄ

¹æÔòÈôÓÐF[A,a]Ϊ¼Ù£¬ÔòʹÆä±äÎªÕæ£¬ÔÙÈÃ(A,a)ÈëÕ»£» µÚ3²½£ºÖظ´ÖÁÕ»¿ÕΪֹ¡£

3¡¢ÇóFIRSTVT¼¯µÄËã·¨ÃèÊö

void insert(A,a) { if !F[A,a] then

{ F[A,a]=1; push(A,a) to stack; } } void main()

{ for (ÿһ¸ö·ÇÖÕ½á·ûAºÍÖÕ½á·ûa) F[A,a]=0;

for (ÿһ¸öÐÎÈçA¡úa¡­»òA¡úBa¡­µÄ¹æÔò) insert(A,a) ; while (stack²»¿Õ)

{ op(B,a) ; for(ÿһ¸öÐÎÈçA¡úB¡­µÄ¹æÔò) insert(A,a) ; } }

¶ÔǰÀýG[E?]£ºE?¡ú#E# E¡úE+T|T T¡úT*F|F F¡úP^F|P P¡ú(E) |i ¶Ô¸÷·ÇÖÕ½á·ûµÚÒ»´ÎɨÃè¹æÔòºó£¬Õ»³õÖµÈçÏ£º

(6) (p,i) (5) (p,() (4) (F,^) (3) (T,*) (2) (E,+) (1) (E?,#)

¶ÔÕ»Ïî(6) (p,i)£¬ÓɹæÔò F¡úP,T¡úF ,E¡úT£¬Ê¹(6)ÒÀ´Î±äΪ£º(F,i) ,(T,i) ,(E,i)¡£µ±(E,i)³öÕ»ºó£¬ÎÞÈëÕ»Ï´Ëʱջ¶¥Îª£º(5) (p,()¡£ ͬÀí£¬¿ÉµÃÏÂÊöÕ»Ï(4) (F,^)¡¢(3) (T,*)¡¢(2) (E,+)¡¢(1) (E?,#)¡£×îºó£¬µ±(E?,#)³öÕ»ºó£¬ÎÞÈëÕ»ÏջΪ¿Õ¡£ 4¡¢¸ù¾ÝËã·¨ÇóFIRSTVT¼¯

·²ÔÚÕ»ÖгöÏÖ¹ýµÄ(A,a)£¬Æä F[A,a]Öµ±ØÎª1¡£¸ù¾Ý¸÷¸öAµÄF[A,a]Öµ£¬¼´¿ÉÇó³öFIRSTVT(A)¡£¶ÔǰÀý£¬ÓУº

5¡¢ÓɹØÏµÍ¼ÇóFIRSTVT¼¯ £¨1£©Í¼ÖнáµãΪFIRSTVT(A)ºÍa£»

£¨2£©¶ÔÐÎÈçA¡úa¡­»òA¡úBa¡­µÄ¹æÔò,´ÓFIRSTVT(A)Á¬»¡µ½a£» £¨3£©¶ÔÐÎÈçA¡úB¡­µÄ¹æÔò,´ÓFIRSTVT(A)Á¬»¡µ½FIRSTVT(B)£»

£¨4£©·²ÊÇ´ÓFIRSTVT(A)¾­ËùÓз¾¶¿É´ïµ½a£¬¶¼ÓÐa¡ÊFIRSTVT(A) ¡£ ¶ÔǰÀý°´¹ØÏµÍ¼Çó³ö¸÷·ÇÖÕ½á·ûµÄFIRSTVTÈçÏ£º

ÓÃÀàËÆ·½·¨Çó³ö¸÷·ÇÖÕ½á·ûµÄLASTVT¼¯¡£ 6¡¢¹¹ÔìÓÅÏȾØÕóµÄËã·¨

void table()

{ for (ÿ¸ö¹æÔòX1X2¡­Xn)?A for (k=1;k< SPAN>

{ if (XkXk+1¡ÊVTVT) Xi¡ÔXi+1;

if (k && (XkXk+1Xk+2¡ÊVTVNVT) Xk¡ÔXk+2;

if ( XkXk+1¡ÊVTVN )

for (FIRSTVT(Xk+(1)ÖÐÿ¸öb) Xk¡Úb; if ( XkXk+1¡ÊVN VT)

for (LASTVT(Xk+(1)ÖÐÿ¸öa) a¡ÛXk+1; } }

ÓÃËã·¨Çó³öÓÅÏȾØÕóΪ £º

6.3.4 Ëã·ûÓÅÏÈ·ÖÎö

Ëã·ûÓÅÏÈ·ÖÎöºÍ¹æ·¶¹éÔ¼µÄºËÐľùΪѰÕÒ¾ä±ú¡£¹æ·¶¹éÔ¼µÄ¾ä±úÊÇ¡°×î

×óÖ±½Ó¶ÌÓ¡£Ëã·ûÓÅÏÈ·ÖÎöµÄ¾ä±úÊÇ¡°×î×óËØ¶ÌÓ¡£

Ò»¡¢ËضÌÓïÓë×î×óËØ¶ÌÓï 1¡¢Ê²Ã´ÊÇËØ¶ÌÓ £Ó=*> ¦Á£Á¦Â and A=+>¦Ã£¬¦ÃÖÁÉÙº¬Ò»¸öÖÕ½á·û£¬ÇÒ²»º¬¸üСµÄº¬ÖÕ½á·ûµÄ

¶ÌÓÔò³Æ¦ÃÊǾäÐͦÁ¦Ã¦ÂµÄÏà¶ÔÓÚ±äÁ¿AµÄËØ¶ÌÓï¡£¾äÐ͵ÄÖÁÉÙº¬Ò»¸öÖÕ½á·ûÇÒ²»º¬ÆäËüËØ¶ÌÓïµÄ¶ÌÓï¡£

×î×ó±ßµÄËØ¶ÌÓï³ÆÎª×î×óËØ¶ÌÓï¡£ 2¡¢Àý£º E¡úT+E|T T¡úT*F|F F¡ú(E) |id

½â£º¾äÐÍ T+T*F+iµÄ¶ÌÓïÓУºT*F£¬i£¬T*F+i, T+T*F+i;ÆäÖеÄËØ¶ÌÓï

Ϊ£ºT*FºÍ i;

3¡¢T*FΪ×î×óËØ¶ÌÓÊDZ»¹éÔ¼µÄ¶ÔÏó¡£

¿ÎÌÃ×÷Òµ£º°´ÕÕÎÄ·¨E¡úE+E|E*E|(E) |id£¬Çói+E*i+iµÄ¶ÌÓïºÍËØ¶ÌÓï¡£ ½â£º

¾äÐÍi+E*i+iµÄ¶ÌÓi£¬E*i,i, i,i+E*iºÍi+E*i+i;ÆäÖеÄËØ¶ÌÓïΪ£ºi, i, i¡£ 3¡¢×î×óËØ¶ÌÓï×ܽá

Éè¾äÐ͵ÄÒ»°ãÐÎʽΪ#N1a1 N2a2¡­ Nnan #,ÆäÖУº

Ni¡ÊVN¡È{¦Å},ai¡ÊVT£¬ÔòËüµÄ×î×óËØ¶ÌÓïÊÇÂú×ãÏÂÁÐÌõ¼þµÄ×î×ó×Ó´®Niai Ni+1ai+1¡­ Njaj Nj+1£¬ ÆäÖУº ai-1¡Úai, ai¡Ôai+1¡Ô¡­¡Ôaj-1¡Ôaj£¬aj¡Ûaj+1¡£

¶þ¡¢Ëã·ûÓÅÏÈ·ÖÎö·¨µÄʵÏÖ 1¡¢·ÖÎöËã·¨ÃèÊö

Éèµ¥ÔªaÖдæ·Åµ±Ç°ÊäÈë·û£¬SΪһ¸ö·ûºÅÕ»£¬Ôò£º (1)½«µ±Ç°ÊäÈë·û´æ·Åµ½aÖУ¬½«#Èë·ûºÅÕ»¡£

(2)½«Õ»¶¥µÚÒ»¸öÖÕ½á·ûbÓëa±È½Ï¡£Èç¹ûb¡Ôa£¬¶ø b== #ÇÒÕ»ÖÐֻʣһ

¸ö·ÇÖÕ½á·ûʱ£¬Ôò³É¹¦£»·ñÔòaÈëÕ»£»Èç¹ûb¡Úa,ÔòaÈëÕ»£»Èç¹ûb¡Ûa,ÔÚÕ»¶¥Ñ°ÕÒ×î×óËØ¶Ì