Êý¾Ý½á¹¹ÊµÑ鱨¸æ
½ø¶Ó
deQueue£¨£©
³ö¶Ó
3¡¢ÊµÑéÊý¾ÝÓë½á¹û
2.3ʵÑé3(exp4-3)
1¡¢ÌâÄ¿
±àдһ¸ö³ÌÐòexp4-3.cpp£¬ÊµÏÖ˳Ðò´®µÄ¸÷ÖÖÆ¥ÅäģʽÔËË㣬²¢ÔÚ´Ë»ù´¡ÉÏÍê³ÉÈçϹ¦
ÄÜ£º
(1) ½¨Á¢¡°abcabcdabcdeabcdefabcdefg¡±Ä¿±ê´®ºÍ¡°abcdeabcdefab¡±Ä£Ê½´®t£»
13
Êý¾Ý½á¹¹ÊµÑ鱨¸æ
(2) (3) (4) (5) ¼òµ¥Æ¥ÅäËã·¨ÇótÔÚsÖйýµÄλÖã» ÓÉģʽ´®tÇó³önextµÄÖµºÍnextvalµÄÖµ ²ÉÓÃKMPËã·¨ÇótÔÚsÖеÄλÖÃ
²ÉÓøĽøµÄKMPËã·¨ÇótÔÚsÖеÄλÖÃ
2¡¢Ëã·¨Éè¼Æ
(1) Éè¼ÆË¼Â·
±¾ÌâµÄ¹Ø¼üÊÇKMPËã·¨µÄ˼·ÒÔ¼°¸Ä½øºóµÄKMPË㷨˼·£¬Ò»°ãµÄģʽ´®Æ¥ÅäËã·¨
Êǰ´¸öɨÃèÄ¿±ê´®ºÍģʽ´®£¬Èç¹û²»Æ¥Å䣬ÔòÄ¿±ê´®Ìø×ªµ½ÏÂÒ»¸ö×Öď֨ÐÂÆ¥Å䣬ÕâÔںܴó³Ì¶ÈÉÏ×öÁ˺ܶàÖØ¸´Æ¥ÅäµÄ¹¤×÷£¬ËùÒÔKMPËã·¨¾ÍÊÇÔÚ´Ë»ù´¡ÉϵĸĽø
(2) ³ÌÐò¹ØÏµÍ¼
StrAssignDispStrIndexmainGetNextKMPIndexGetNextvalKMPIndexpro
(3) º¯Êý¹¦ÄÜÃèÊö StrAssign£¨£©
14
Êý¾Ý½á¹¹ÊµÑ鱨¸æ
½«str[]ÖеÄ×Ö·û´®¸´ÖƵ½sÖÐ DispStr£¨£©
Êä³ö×Ö·û´® Index£¨£©
15
Êý¾Ý½á¹¹ÊµÑ鱨¸æ
¼òµ¥µÄÆ¥ÅäËã·¨
GetNext£¨£©
¸ù¾Ýģʽ´®Çó³öÏÂÒ»¸ö×Ö·ûµÄϱê
KMPIndex£¨£©
16