21£®ÒÑÖª¶þ²æÅÅÐòÊ÷²ÉÓöþ²æÁ´±í´æ´¢½á¹¹£¬¸ù½áµãµÄÖ¸ÕëΪT£¬Á´½áµãµÄ½á¹¹Îª£¨lchild,data,rchild£©£¬ÆäÖÐlchild¡¢rchild·Ö±ðÖ¸Ïò¸Ã½áµã×ó¡¢ÓÒº¢×ÓµÄÖ¸Õ루µ±º¢×Ó½áµã²»´æÔÚʱ£¬ÏàÓ¦Ö¸ÕëÓòΪnull£©,dataÓò´æ·Å½áµãµÄÊý¾ÝÐÅÏ¢¡£Çëд³öµÝ¹éËã·¨£¬´ÓСµ½´óÊä³ö¶þ²æÅÅÐòÊ÷ÖÐËùÓÐÊý¾ÝÖµ>=xµÄ½áµãµÄÊý¾Ý¡£ÒªÇóÏÈÕÒµ½µÚÒ»¸öÂú×ãÌõ¼þµÄ½áµãºóÔÙÒÀ´ÎÊä³öÆäËûÂú×ãÌõ¼þµÄ½áµã¡£ 22. Éè¶þ²æÅÅÐòÊ÷µÄ´æ´¢½á¹¹Îª£º
TYPE tree=^node£» node=RECORD
key: keytype; size:int;
lchild, rchild, parents: tree£» END;
Ò»¸ö½áµãx^µÄsizeÓòµÄÖµÊÇÒԸýáµãΪ¸ùµÄ×ÓÊ÷ÖнáµãµÄ×ÜÊý£¨°üÀ¨x^±¾Éí£©¡£ÀýÈ磬ÏÂͼÖÐxËùÖ¸½áµãµÄsixeֵΪ4¡£ÉèÊ÷¸ßΪh£¬ÊÔдһʱ¼äΪO(h)µÄËã·¨
Rank(T:tree;x:^node)·µ»ØxËùÖ¸½áµãÔÚ¶þ²æÅÅÐòÊ÷TµÄÖÐÐòÐòÁÐÀïµÄÅÅÐòÐòºÅ£¬¼´£ºÇóx^½áµãÊǸùΪTµÄ¶þ²æÅÅÐòÊ÷Öеڼ¸¸ö×îСԪËØ¡£ÀýÈ磬ÏÂͼxËùÖ¸½áµãÊÇÊ÷TÖеÚ11¸ö×îСԪËØ¡££¨Ìáʾ£ºÄã¿ÉÀûÓÃsizeÖµºÍË«Ç×Ö¸Õëparents£©
23£®ÒÑ֪ij¹þÏ£±íHTµÄ×°ÌîÒò×ÓСÓÚ1£¬¹þÏ£º¯ÊýH(key)Ϊ¹Ø¼ü×ֵĵÚÒ»¸ö×ÖĸÔÚ×Öĸ±íÖеÄÐòºÅ¡£
£¨1£© ´¦Àí³åÍ»µÄ·½·¨ÎªÏßÐÔ̽²â¿ª·ÅµØÖ··¨¡£±àдһ¸ö°´µÚÒ»¸ö×ÖĸµÄ˳ÐòÊä³ö
¹þÏ£±íÖÐËùÓйؼü×ֵijÌÐò¡£
£¨2£© ´¦Àí³åÍ»µÄ·½·¨ÎªÁ´µØÖ··¨¡£±àдһ¸ö¼ÆËãÔڵȸÅÂÊÇé¿öϲéÕÒ²»³É¹¦µÄƽ
¾ù²éÕÒ³¤¶ÈµÄËã·¨¡£×¢Ò⣬´ËËã·¨Öй涨²»ÄÜÓù«Ê½Ö±½ÓÇó½â¼ÆËã¡£
24£®ÓÐÒ»¸ö100*100µÄÏ¡Êè¾ØÕó£¬ÆäÖÐ1%µÄÔªËØΪ·ÇÁãÔªËØ£¬ÏÖÒªÇóÓùþÏ£±í×÷´æ´¢½á¹¹¡£
£¨1£©ÇëÄãÉè¼ÆÒ»¸ö¹þÏ£±í
£¨2£©Çëдһ¸ö¶ÔÄãËùÉè¼ÆµÄ¹þÏ£±íÖиø¶¨ÐÐÖµºÍÁÐÖµ´æÈ¡¾ØÕóÔªËصÄËã·¨£»²¢¶ÔÄãµÄËã·¨ËùÐèʱ¼äºÍÓÃһάÊý×飨ÿ¸ö·ÖÁ¿´æ·ÅÒ»¸ö·ÇÁãÔªËصÄÐÐÖµ£¬ÁÐÖµ£¬ºÍÔªËØÖµ£©×÷´æ´¢½á¹¹Ê±´æÈ¡ÔªËصÄËã·¨£¨×¢£º´ËËã·¨²»ÐèҪд³ö£¬½öÐè˵Ã÷´æÈ¡µÄ·½·¨ºÍËùÓÃʱ¼ä£©½øÐбȽϡ£
25£®½«Ò»×éÊý¾ÝÔªËØ°´¹þÏ£º¯ÊýH£¨key£©É¢Áе½¹þÏ£±íHT£¨0:m£©ÖУ¬ÓÃÏßÐÔ̽²â·¨´¦Àí³åÍ»£¨H£¨key£©+1¡¢H£¨key£©+2¡¢?¡¢H£¨key£©-1£©£¬¼ÙÉè¿Õµ¥ÔªÓÃEMPTY±íʾ£¬É¾³ý²Ù×÷Êǽ«¹þÏ£±íÖнáµã±ê־λ´ÓINUSE±ê¼ÇΪDELETED£¬ÊÔд³ö¸ÃÉ¢ÁбíµÄ²éÕÒ¡¢²åÈëºÍɾ³ýÈý¸ö»ù±¾²Ù×÷Ëã·¨¡£
26. Éè¸ø¶¨¹Ø¼ü×ÖÊäÈëÐòÁÐΪ£¨100£¬90£¬120£¬60£¬78£¬35£¬42£¬31£¬15£©ÓÃÉ¢Áз¨É¢ÁÐ0-10µÄµØÖ·Çø¼ä¡£ÒªÇóÉè¼ÆÒ»ºÏÀíµÄÉ¢Áк¯Êý£»³åͻʱÓÃÁ´±í·¨½â¾ö£¬Ð´³öÉ¢ÁÐËã·¨£¬²¢¹¹Ôì³öÉ¢ÁÐ±í£¬ÔڵȸÅÂʲéÕÒÇé¿öϲéÕҳɹ¦µÄƽ¾ù²éÕÒ³¤¶ÈÊǶàÉÙ£¿
ÀàËƱ¾ÌâµÄÁíÍâÐðÊöÓУº
(1) ÒÑÖªÊäÈë¹Ø¼ü×ÖÐòÁÐΪ£¨100,90,120,60,78,35,42,31,15£©µØÖ·Çø¼äΪ£°¡«£±£±¡£Éè¼ÆÒ»¸ö¹þÏ£±íº¯Êý°ÑÉÏÊö¹Ø¼ü×ÖÉ¢µ½£°¡«£±£±ÖУ¬»³öÉ¢ÁÐ±í£¨³åÍ»ÓÃÏßÐÔ̽²â·¨£©£»Ð´³ö²éÕÒËã·¨£¬¼ÆËãÔڵȸÅÂÊÇé¿öϲéÕҳɹ¦µÄƽ¾ù²éÕÒ³¤¶È¡£
27.ÒÑ֪˳Ðò±íÖÐÓÐm¸ö¼Ç¼£¬±íÖмǼ²»ÒÀ¹Ø¼ü×ÖÓÐÐòÅÅÁУ¬±àдË㷨Ϊ¸Ã˳Ðò±í½¨Á¢Ò»¸öÓÐÐòµÄË÷Òý±í£¬Ë÷Òý±íÖеÄÿһÏ¼Ç¼µÄ¹Ø¼ü×ֺ͸üǼÔÚ˳Ðò±íÖеÄÐòºÅ£¬ÒªÇóËã·¨µÄʱ¼ä¸´ÔÓ¶ÈÔÚ×îºÃµÄÇé¿öÏÂÄÜ´ïµ½£©O(m).
²Î¿¼´ð°¸£º Ò»£®Ñ¡ÔñÌâ 1.C 2.A 3.1D 3.2C 4.D 5.B 6.D 7.D 8.C 9.A 10.D 11.B 12.1C 12.2C 13.1C 13.2D 13.3G 13.4H 14.1E 14.2B 14.3E 14.4B 14.5B 15.1B 15.2A 16.A 26.2C 27.B ¶þ£®ÅжÏÌâ 1.¡Ì 2.¡Ì 3.¡Á 4.¡Á 5.¡Á 6.¡Ì 7.¡Ì 8.¡Á 9.¡Á 10.¡Á 11.¡Á 12.¡Ì 17.C 28.D 18.C 29.D 19.C 30.C 20.D 31.D 21.B 22.C 23.B 24.D 25.C 26.1A 32.1D 32.2C 33.C 13.¡Ì 14.¡Á 15.¡Á 16.¡Á 17.¡Ì 18.¡Á 19.¡Ì 20.¡Á 21.¡Á 22.¡Á 23.¡Á 24.¡Á 25.¡Ì 26.¡Á 27.¡Á 28.¡Ì 29.¡Ì 30.¡Á 31.¡Ì 32.¡Ì 33.¡Á 34.¡Ì 35.¡Ì ²¿·Ö´ð°¸½âÊÍÈçÏ¡£
4£®²»ÄÜ˵ÄÄÖÖ¹þÏ£º¯ÊýµÄÑ¡È¡·½·¨×îºÃ£¬¸÷ÖÖÑ¡È¡·½·¨ÓÐ×Ô¼ºµÄÊÊÓ÷¶Î§¡£ 8£®¹þÏ£±íµÄ½áµãÖпÉÒÔ°üÀ¨Ö¸Õ룬ָÏòÆäÔªËØ¡£ 11£®µ¥Á´±í²»ÄÜʹÓÃÕÛ°ë²éÕÒ·½·¨¡£
20£®°´²åÈëºóÖÐÐò±éÀúÊǵÝÔöÐòÁеÄÔÔò£¬Èôij½áµãÖ»ÓÐÓÒ×ÓÊ÷£¬¶ø²åÈëÔªËصĹؼü×ÖСÓڸýáµãµÄ¹Ø¼ü×Ö£¬Ôò»á²åÈëµ½¸Ã½áµãµÄ×ó²à£¬³ÉΪÆä×óº¢×Ó¡£ÕâÖÖ²åÈë¾Í²»ÊDzåÈëµ½Ò¶×ÓÏÂÃæ¡£
21£®´ÓƽºâÒò×Ó¶¨Òå¿´£¬ÍêÈ«¶þ²æÊ÷ÈÎÒ»½áµãµÄƽºâÒò×ӵľø¶ÔֵȷʵÊÇСÓÚµÈÓÚ1¡£µ«ÊÇ£¬Æ½ºâ¶þ²æÊ÷±¾ÖÊÉÏÊǶþ²æÅÅÐòÊ÷£¬ÍêÈ«¶þ²æÊ÷²»Ò»¶¨ÊÇÅÅÐòÊ÷¡£¹Ê²»ÄÜ˵ÍêÈ«¶þ²æÊ÷ÊÇƽºâ¶þ²æÊ÷¡£
23£®Ä³½áµãµÄ×ó×ÓÊ÷¸ù½áµã²»Ò»¶¨ÊÇËüµÄÖÐÐòÇ°Çý£¬ÆäÓÒ×ÓÊ÷¸ù½áµãÒ²²»Ò»¶¨ÊÇËüµÄÖÐÐòºó¼Ì¡£
24£®ÔڵȸÅÂÊÏ£¬²éÕҳɹ¦Ê±µÄƽ¾ù²éÕÒ³¤¶ÈÏàͬ£¬²éÕÒʧ°ÜʱµÄƽ¾ù²éÕÒ³¤¶È²»Ïàͬ¡£ 26£®Ö»Óб»É¾³ý½áµãÊÇÒ¶×Ó½áµãʱÃüÌâ²ÅÕýÈ·¡£
Èý£®Ìî¿ÕÌâ
1£®n n+1 2£®4 3£®6,9,11,12 4£®5
5£®26£¨µÚ4²ãÊÇÒ¶×Ó½áµã£¬Ã¿¸ö½áµãÁ½¸ö¹Ø¼ü×Ö£© 6£®1,3,6,8,11,13,16,19 7£®5,96 8£®m-1,¡¸m/2?-1 9£®2,4,3
10£®(1)¹þÏ£º¯Êý(2)½â¾ö³åÍ»µÄ·½·¨ (3)Ñ¡ÔñºÃµÄ¹þÏ£º¯Êý (4)´¦Àí³åÍ»µÄ·½·¨ (5)¾ùÔÈ(6)¼òµ¥
11£®AVLÊ÷£¨¸ß¶ÈƽºâÊ÷£¬¸ß¶ÈƽºâµÄ¶þ²æÅÅÐòÊ÷£©£¬»òΪ¿Õ¶þ²æÊ÷£¬»ò¶þ²æÊ÷ÖÐÈÎÒâ½áµã×ó×ÓÊ÷¸ß¶ÈÓëÓÒ×ÓÊ÷¸ß¶È²îµÄ¾ø¶ÔֵСÓÚµÈÓÚ1¡£
12£®Ð¡ÓÚµÈÓÚ±í³¤µÄ×î´óËØÊý»ò²»°üº¬Ð¡ÓÚ20µÄÖÊÒò×ӵĺÏÊý 13£®16 14£®?©S2¡¹+1
15£®(1)45 (2)45 (3)46£¨¿éÄÚ˳Ðò²éÕÒ£© 16£®k(k+1)/2
17£®30£¬31.5£¨¿éÄÚ˳Ðò²éÕÒ£©
18£®(1)˳Ðò´æ´¢»òÁ´Ê½´æ´¢ (2)˳Ðò´æ´¢ÇÒÓÐÐò (3)¿éÄÚ˳Ðò´æ´¢£¬¿é¼äÓÐÐò (4) É¢Áд洢
19£®(n+1)/2 20£®(n+1)/n*log2(n+1)-1 21£®½áµãµÄ×ó×ÓÊ÷µÄ¸ß¶È¼õÈ¥½áµãµÄÓÒ×ÓÊ÷µÄ¸ß¶È
22£®(1)˳Ðò±í(2)Ê÷±í(3)¹þÏ£±í(4)¿ª·Å¶¨Ö··½·¨(5)Á´µØÖ··½·¨(6)ÔÙ¹þÏ£(7)½¨Á¢¹«¹²Òç³öÇø
23£®Ö±½Ó¶¨Ö··¨ 24£®O(N) 25£®n(n+1)/2 26£®54 27£®31 28£®37/12 29£®Ö÷¹Ø¼ü×Ö 30£®×ó×ÓÊ÷ ÓÒ×ÓÊ÷
n
31£®²åÈë ɾ³ý 32£®14 33£®(1)126 (2)64 (3)33 (4)65 34£®£¨1£©low<=high (2) (low+hig) DIV 2 (3) binsrch:=mid (4)binsrch:=0 35£®(1) k (2) I
ËÄ£®Ó¦ÓÃÌâ
1£®¸ÅÄîÊÇ»ù±¾ÖªÊ¶µÄÖ÷Òª²¿·Ö£¬ÒªÀιÌÕÆÎÕ¡£Ä¿µÄÊÇÒýÆðÖØÊÓ£¬½â´ðÂÔ¡£ 2£®£¨1£©É¢Áбí´æ´¢µÄ»ù±¾Ë¼ÏëÊÇÓùؼü×ÖµÄÖµ¾ö¶¨Êý¾ÝÔªËصĴ洢µØÖ· £¨2£©É¢Áбí´æ´¢Öнâ¾öÅöײµÄ»ù±¾·½·¨£º
¢Ù ¿ª·Å¶¨Ö··¨ ÐγɵØÖ·ÐòÁеĹ«Ê½ÊÇ£ºHi=£¨H£¨key£©+di£©% m£¬ÆäÖÐmÊÇ±í³¤£¬diÊÇÔöÁ¿¡£¸ù¾ÝdiÈ¡·¨²»Í¬£¬ÓÖ·ÖΪÈýÖÖ£º
a£®di =1£¬2£¬?£¬m-1 ³ÆΪÏßÐÔ̽²âÔÙÉ¢ÁУ¬ÆäÌصãÊÇÖð¸ö̽²â±í¿Õ¼ä£¬Ö»ÒªÉ¢ÁбíÖÐÓпÕÏпռ䣬¾Í¿É½â¾öÅöײ£¬È±µãÊÇÈÝÒ×Ôì³É¡°¾Û¼¯¡±£¬¼´²»ÊÇͬÒå´ÊµÄ¹Ø¼ü×ÖÕù¶áͬһɢÁеØÖ·¡£
b£®di =1£¬-1£¬2£¬-2£¬? £¬?k£¨k¡Üm/2£© ³ÆΪ¶þ´Î̽²âÔÙÉ¢ÁУ¬Ëü¼õÉÙÁ˾ۼ¯£¬µ«²»ÈÝÒ×̽²âµ½È«²¿±í¿Õ¼ä£¬Ö»Óе±±í³¤ÎªÐÎÈç4j+3£¨jΪÕûÊý£©µÄËØÊýʱ²ÅÓпÉÄÜ¡£
c£®di =αËæ»úÊýÐòÁУ¬³ÆΪËæ»ú̽²âÔÙÉ¢ÁС£
¢Ú ÔÙÉ¢Áз¨ Hi=RHi£¨key£© i=1£¬2£¬?£¬k£¬ÊDz»Í¬µÄÉ¢Áк¯Êý£¬¼´ÔÚͬÒå´Ê²úÉúÅöײʱ£¬ÓÃÁíһɢÁк¯Êý¼ÆËãÉ¢ÁеØÖ·£¬Ö±µ½½â¾öÅöײ¡£¸Ã·½·¨²»ÒײúÉú¡°¾Û¼¯¡±£¬µ«Ôö¼ÓÁ˼ÆËãʱ¼ä¡£
¢Û Á´µØÖ··¨ ½«¹Ø¼ü×ÖΪͬÒå´ÊµÄ¼Ç¼´æ´¢ÔÚͬһÁ´±íÖУ¬É¢ÁбíµØÖ·Çø¼äÓÃH[0..m-1]±íʾ£¬·ÖÁ¿³õʼֵΪ¿ÕÖ¸Õë¡£·²É¢ÁеØַΪi£¨0¡Üi¡Üm-1£©µÄ¼Ç¼¾ù²åÔÚÒÔH[i]ΪͷָÕëµÄÁ´±íÖС£ÕâÖÖ½â¾ö·½·¨ÖÐÊý¾ÝÔªËظöÊý²»ÊÜ±í³¤ÏÞÖÆ£¬²åÈëºÍɾ³ý²Ù×÷·½±ã£¬µ«Ôö¼ÓÁËÖ¸ÕëµÄ¿Õ¼ä¿ªÏú¡£ÕâÖÖÉ¢ÁÐ±í³£³ÆΪ¿ªÉ¢ÁÐ±í£¬¶ø¢ÙÖеÄÉ¢Áбí³Æ±ÕÉ¢ÁÐ±í£¬º¬ÒåÊÇÔªËظöÊýÊÜ±í³¤ÏÞÖÆ¡£
¢Ü ½¨Á¢¹«¹²Òç³öÇø ÉèH[0..m-1]Ϊ»ù±¾±í£¬·²¹Ø¼ü×ÖΪͬÒå´ÊµÄ¼Ç¼£¬¶¼ÌîÈëÒç³öÇøO[0..m-1]¡£
£¨3£©Ó÷ÖÀëµÄͬÒå´Ê±íºÍ½áºÏµÄͬÒå´Ê±í½â¾öÅöײ¾ùÊôÓÚÁ´µØÖ··¨¡£Á´µØÖ·ÏòÁ¿¿Õ¼äÖеÄÿ¸öÔªËز»ÊǼòµ¥µÄµØÖ·£¬¶øÊǹؼü×ÖºÍÖ¸ÕëÁ½¸öÓò£¬É¢ÁеØַΪi£¨0¡Üi¡Üm-1£©µÄµÚÒ»¸ö¹Ø¼ü×Ö´æ´¢ÔÚµØÖ·¿Õ¼äÏòÁ¿µÚi¸ö·ÖÁ¿µÄ¡°¹Ø¼ü×Ö¡±Óò¡£Ç°ÕßµÄÖ¸ÕëÓòÊǶ¯Ì¬Ö¸Õ룬ָÏò
2
2
2
2
2