¾«ÐÄÕûÀí
cout<
DoubleTraverse(T->lchild); cout<
DoubleTraverse(T->rchild); } }
£¨5£©¼ÆËã¶þ²æÊ÷×î´óµÄ¿í¶È£¨¶þ²æÊ÷µÄ×î´ó¿í¶ÈÊÇÖ¸¶þ²æÊ÷ËùÓвãÖнáµã¸öÊýµÄ×î´óÖµ£©¡£
[ÌâÄ¿·ÖÎö]Çó¶þ²æÊ÷¸ß¶ÈµÄËã·¨¼ûÉÏÌâ¡£Çó×î´ó¿í¶È¿É²ÉÓòã´Î±éÀúµÄ·½·¨£¬¼Çϸ÷²ã½áµãÊý£¬Ã¿²ã±éÀúÍê±Ï£¬Èô½áµãÊý´óÓÚÔÏÈ×î´ó¿í¶È£¬ÔòÐÞ¸Ä×î´ó¿í¶È¡£
intWidth(BiTreebt)//Çó¶þ²æÊ÷btµÄ×î´ó¿í¶È
{if(bt==null)return(0);//¿Õ¶þ²æÊ÷¿í¶ÈΪ0 else {BiTreeQ[];//QÊǶÓÁУ¬ÔªËØΪ¶þ²æÊ÷½áµãÖ¸Õ룬ÈÝÁ¿×ã¹»´ó front=1;rear=1;last=1;//front¶ÓÍ·Ö¸Õë,rear¶ÓβָÕë,lastͬ²ã×îÓÒ½áµãÔÚ¶ÓÁÐÖеÄλÖà temp=0;maxw=0;//temp¼Ç¾Ö²¿¿í¶È,maxw¼Ç×î´ó¿í¶È Q[rear]=bt;//¸ù½áµãÈë¶ÓÁÐ while(front<=last) {p=Q[front++];temp++;//ͬ²ãÔªËØÊý¼Ó1 if(p->lchild!=null)Q[++rear]=p->lchild;//×ó×ÓÅ®Èë¶Ó if(p->rchild!=null)Q[++rear]=p->rchild;//ÓÒ×ÓÅ®Èë¶Ó if(front>last)//Ò»²ã½áÊø£¬ {last=rear; if(temp>maxw)maxw=temp;//lastÖ¸Ïòϲã×îÓÒÔªËØ,¸üе±Ç°×î´ó¿í¶È temp=0; }//if }//while return(maxw); }//½áÊøwidth £¨6£©Óð´²ã´Î˳Ðò±éÀú¶þ²æÊ÷µÄ·½·¨£¬Í³¼ÆÊ÷ÖоßÓжÈΪ1µÄ½áµãÊýÄ¿¡£ intLevel(BiTreebt)//²ã´Î±éÀú¶þ²æÊ÷£¬²¢Í³¼Æ¶ÈΪ1µÄ½áµãµÄ¸öÊý {intnum=0;//numͳ¼Æ¶ÈΪ1µÄ½áµãµÄ¸öÊý if(bt){QueueInit(Q);QueueIn(Q,bt)£»//QÊÇÒÔ¶þ²æÊ÷½áµãÖ¸ÕëΪԪËصĶÓÁÐ while(!QueueEmpty(Q)) {p=QueueOut(Q);printf(p->data);//³ö¶Ó,·ÃÎʽáµã if(p->lchild&&!p->rchild||!p->lchild&&p->rchild)num++;//¶ÈΪ1µÄ½áµã if(p->lchild)QueueIn(Q,p->lchild);//·Ç¿Õ×ó×ÓÅ®Èë¶Ó if(p->rchild)QueueIn(Q,p->rchild);//·Ç¿ÕÓÒ×ÓÅ®Èë¶Ó }}//if(bt)
return(num);}//·µ»Ø¶ÈΪ1µÄ½áµãµÄ¸öÊý
£¨7£©ÇóÈÎÒâ¶þ²æÊ÷ÖеÚÒ»Ìõ×µÄ·¾¶³¤¶È£¬²¢Êä³ö´Ë·¾¶Éϸ÷½áµãµÄÖµ¡£
[ÌâÄ¿·ÖÎö]ÒòΪºóÐò±éÀúÕ»Öб£Áôµ±Ç°½áµãµÄ×æÏȵÄÐÅÏ¢£¬ÓÃÒ»±äÁ¿±£´æÕ»µÄ×î¸ßÕ»¶¥Ö¸Õ룬ÿµ±ÍËջʱ£¬Õ»¶¥Ö¸Õë¸ßÓÚ±£´æ×î¸ßÕ»¶¥Ö¸ÕëµÄֵʱ£¬Ôò½«¸ÃÕ»µ¹È븨ÖúÕ»ÖУ¬¸¨ÖúջʼÖÕ±£´æ×·¾¶³¤¶ÈÉϵĽáµã£¬Ö±ÖÁºóÐò±éÀúÍê±Ï£¬Ôò¸¨ÖúÕ»ÖÐÄÚÈݼ´ÎªËùÇó¡£
voidLongestPath(BiTreebt)//Çó¶þ²æÊ÷ÖеĵÚÒ»Ìõ×·¾¶³¤¶È
{BiTreep=bt,l[],s[];//l,sÊÇÕ»£¬ÔªËØÊǶþ²æÊ÷½áµãÖ¸Õ룬lÖб£Áôµ±Ç°×·¾¶ÖеĽáµã inti£¬top=0,tag[],longest=0; ¾«ÐÄÕûÀí
¾«ÐÄÕûÀí
while(p||top>0)
{while(p){s[++top]=p£»tag[top]=0;p=p->Lc;}//ÑØ×ó·ÖÖ¦ÏòÏ if(tag[top]==1)//µ±Ç°½áµãµÄÓÒ·ÖÖ¦ÒѱéÀú
{if(!s[top]->Lc&&!s[top]->Rc)//Ö»Óе½Ò¶×Ó½áµãʱ£¬²Å²é¿´Â·¾¶³¤¶È
if(top>longest){for(i=1;i<=top;i++)l[i]=s[i];longest=top;top--;}
//±£Áôµ±Ç°×·¾¶µ½lÕ»£¬¼Çס×î¸ßÕ»¶¥Ö¸Õ룬ÍËÕ» }
elseif(top>0){tag[top]=1;p=s[top].Rc;}//ÑØÓÒ×Ó·ÖÖ¦ÏòÏ }//while(p!=null||top>0) }//½áÊøLongestPath
£¨8£©Êä³ö¶þ²æÊ÷ÖдÓÿ¸öÒ¶×Ó½áµãµ½¸ù½áµãµÄ·¾¶¡£
[ÌâÄ¿·ÖÎö]²ÉÓÃÏÈÐò±éÀúµÄµÝ¹é·½·¨£¬µ±ÕÒµ½Ò¶×Ó½áµã*bʱ£¬ÓÉÓÚ*bÒ¶×Ó½áµãÉÐδÌí¼Óµ½pathÖУ¬Òò´ËÔÚÊä³ö·¾¶Ê±»¹ÐèÊä³öb->dataÖµ¡£¶ÔÓ¦µÄµÝ¹éËã·¨ÈçÏ£º voidAllPath(BTNode*b,ElemTypepath[],intpathlen) { inti;
if(b!=NULL) {
if(b->lchild==NULL&&b->rchild==NULL)//*bΪҶ×Ó½áµã {
cout<<\µ½¸ù½áµã·¾¶:\for(i=pathlen-1;i>=0;i--) cout< path[pathlen]=b->data;//½«µ±Ç°½áµã·ÅÈë·¾¶ÖÐ pathlen++;//·¾¶³¤¶ÈÔö1 AllPath(b->lchild,path,pathlen);//µÝ¹éɨÃè×ó×ÓÊ÷ AllPath(b->rchild,path,pathlen);//µÝ¹éɨÃèÓÒ×ÓÊ÷ pathlen--;//»Ö¸´»·¾³ } } } µÚ6Õ ͼ 1£®Ñ¡ÔñÌâ £¨1£©ÔÚÒ»¸öͼÖУ¬ËùÓж¥µãµÄ¶ÈÊýÖ®ºÍµÈÓÚͼµÄ±ßÊýµÄ£¨£©±¶¡£ A£®1/2B£®1 C£®2D£®4 £¨2£©ÔÚÒ»¸öÓÐÏòͼÖУ¬ËùÓж¥µãµÄÈë¶ÈÖ®ºÍµÈÓÚËùÓж¥µãµÄ³ö¶ÈÖ®ºÍµÄ£¨£©±¶¡£ A£®1/2B£®1 C£®2D£®4 £¨3£©¾ßÓÐn¸ö¶¥µãµÄÓÐÏòͼ×î¶àÓУ¨£©Ìõ±ß¡£ ¾«ÐÄÕûÀí ¾«ÐÄÕûÀí A£®nB£®n(n-1)C£®n(n+1)D£®n2 £¨4£©n¸ö¶¥µãµÄÁ¬Í¨Í¼ÓÃÁÚ½Ó¾àÕó±íʾʱ£¬¸Ã¾àÕóÖÁÉÙÓУ¨£©¸ö·ÇÁãÔªËØ¡£ A£®nB£®2(n-1)C£®n/2D£®n2 £¨5£©GÊÇÒ»¸ö·ÇÁ¬Í¨ÎÞÏòͼ£¬¹²ÓÐ28Ìõ±ß£¬Ôò¸ÃͼÖÁÉÙÓУ¨£©¸ö¶¥µã¡£ A£®7B£®8 C£®9D£®10 £¨6£©Èô´ÓÎÞÏòͼµÄÈÎÒâÒ»¸ö¶¥µã³ö·¢½øÐÐÒ»´ÎÉî¶ÈÓÅÏÈËÑË÷¿ÉÒÔ·ÃÎÊͼÖÐËùÓеĶ¥µã£¬Ôò¸Ãͼһ¶¨ÊÇ£¨£©Í¼¡£ A£®·ÇÁ¬Í¨B£®Á¬Í¨C£®Ç¿Á¬Í¨D£®ÓÐÏò £¨7£©ÏÂÃ棨 £©Ëã·¨ÊʺϹ¹ÔìÒ»¸ö³íÃÜͼGµÄ×îСÉú³ÉÊ÷¡£ A£®PrimËã·¨B£®KruskalËã·¨C£®FloydËã·¨D£®DijkstraËã·¨ £¨8£©ÓÃÁÚ½Ó±í±íʾͼ½øÐйã¶ÈÓÅÏȱéÀúʱ£¬Í¨³£½èÖú£¨£©À´ÊµÏÖËã·¨¡£ A£®Õ»B.¶ÓÁÐC.Ê÷D£®Í¼ £¨9£©ÓÃÁÚ½Ó±í±íʾͼ½øÐÐÉî¶ÈÓÅÏȱéÀúʱ£¬Í¨³£½èÖú£¨£©À´ÊµÏÖËã·¨¡£ A£®Õ»B.¶ÓÁÐC.Ê÷D£®Í¼ £¨10£©Éî¶ÈÓÅÏȱéÀúÀàËÆÓÚ¶þ²æÊ÷µÄ£¨£©¡£ A£®ÏÈÐò±éÀúB£®ÖÐÐò±éÀúC£®ºóÐò±éÀúD£®²ã´Î±éÀú £¨11£©¹ã¶ÈÓÅÏȱéÀúÀàËÆÓÚ¶þ²æÊ÷µÄ£¨£©¡£ A£®ÏÈÐò±éÀúB£®ÖÐÐò±éÀúC£®ºóÐò±éÀúD£®²ã´Î±éÀú £¨12£©Í¼µÄBFSÉú³ÉÊ÷µÄÊ÷¸ß±ÈDFSÉú³ÉÊ÷µÄÊ÷¸ß£¨£©¡£ A£®Ð¡B£®ÏàµÈC£®Ð¡»òÏàµÈD£®´ó»òÏàµÈ £¨13£©ÒÑ֪ͼµÄÁÚ½Ó¾ØÕóÈçͼ6.25Ëùʾ£¬Ôò´Ó¶¥µã0³ö·¢°´Éî¶ÈÓÅÏȱéÀúµÄ½á¹ûÊÇ£¨£©¡£ ?0?1??1??1?1??0??111110011000010010011101?01??00??10?10??01?10??0011000A£®0243156 B£®0136542 C£®0134256 D£®0361542 ͼ6.25ÁÚ½Ó¾ØÕó £¨14£©ÒÑ֪ͼµÄÁÚ½Ó±íÈçͼ6.26Ëùʾ£¬Ôò´Ó¶¥µã0³ö·¢°´¹ã¶ÈÓÅÏȱéÀúµÄ½á¹ûÊÇ£¨£©£¬°´Éî¶ÈÓÅÏȱéÀúµÄ½á¹ûÊÇ£¨£©¡£ A£®0132B£®0231 C£®0321D£®0123 ͼ6.26ÁÚ½Ó±í £¨15£©ÏÂÃ棨£©·½·¨¿ÉÒÔÅжϳöÒ»¸öÓÐÏòͼÊÇ·ñÓл·¡£ A£®Éî¶ÈÓÅÏȱéÀúB£®ÍØÆËÅÅÐòC£®Çó×î¶Ì·¾¶D£®Çó¹Ø¼ü·¾¶ 2£®Ó¦ÓÃÌâ £¨1£©ÒÑÖªÈçͼ6.27ËùʾµÄÓÐÏòͼ£¬Çë¸ø³ö£º ¢Ùÿ¸ö¶¥µãµÄÈë¶ÈºÍ³ö¶È£» ¢ÚÁÚ½Ó¾ØÕó£» ¢ÛÁÚ½Ó±í£» ¢ÜÄæÁÚ½Ó±í¡£ ¾«ÐÄÕûÀí ¾«ÐÄÕûÀí £¨2£©ÒÑÖªÈçͼ6.28ËùʾµÄÎÞÏòÍø£¬Çë¸ø³ö£º ¢ÙÁÚ½Ó¾ØÕó£» ¢ÚÁÚ½Ó±í£» ¢Û×îСÉú³ÉÊ÷ a b c d e f g h ¡ú b 4 ¡ú c 3 ¡ú a 4 ¡ú c 5 ¡ú a 3 ¡ú b 5 ¡ú b 5 ¡ú c 5 ¡ú b 9 ¡ú d 7 ¡ú d 6 ¡ú e 3 ¡ú d 5 ¡ú f 2 ¡ú c 5 ¡ú d 4 5 5 7 3 2 6 6 ¡ú d ¡ú d ¡ú e ¡ú f ¡ú g ¡ú h ¡ú g ¡ú e ¡ú h ¡ú f ^ ^ ^ ^ 9 ^ 5 ^ ͼ6.27ÓÐÏò ͼ 6.28ÎÞÏò 6 ¡ú g 5 ¡ú h 4^ £¨3£©ÒÑ֪ͼµÄÁÚ½Ó¾ØÕóÈç6.29Ëùʾ¡£ÊÔ·Ö±ð»³ö×Ô¶¥µã1³ö·¢½øÐбéÀúËùµÃµÄÉî¶ÈÓÅÏÈÉú³ÉÊ÷ºÍ¹ã¶ÈÓÅÏÈÉú³ÉÊ÷¡£ £¨4£©ÓÐÏòÍøÈçͼ6.30Ëùʾ£¬ÊÔÓõϽÜ˹ÌØÀËã·¨Çó³ö´Ó¶¥µãaµ½ÆäËû¸÷¶¥µã¼äµÄ×î¶Ì·¾¶£¬Íê³É±í6.9¡£ ͼ6.30ÓÐÏòÍø ͼ6.29ÁÚ½Ó¾ØÕó D ÖÕµã b c d e f g S Öյ㼯 {a,c} {a,c,f} {a,c,f,e} {a,c,f,e,d} {a,c,f,e,d,g} {a,c,f,e,d,g,b} 15 (a,b) 2 (a,c) 12 (a,d) ¡Þ 15 (a,b) 15 (a,b) 15 (a,b) 15 (a,b) 15 (a,b) i=1 i=2 i=3 i=4 i=5 i=6 12 (a,d) 10 (a,c,e) 6 (a,c,f) ¡Þ 11 (a,c,f,d) 10 (a,c,e) 11 (a,c,f,d) 16 (a,c,f,g) 14 (a,c,f,d,g) ¡Þ 16 (a,c,f,g) ¡Þ £¨5£©ÊÔ¶Ôͼ6.31ËùʾµÄAOE-Íø£º ¢ÙÇóÕâ¸ö¹¤³Ì×îÔç¿ÉÄÜÔÚʲôʱ¼ä½áÊø£» ¾«ÐÄÕûÀí