Êý¾Ý½á¹¹£¨CÓïÑ԰棩¿ÎºóÏ°Ìâ´ð°¸ ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÈý ÎÄÕÂÊý¾Ý½á¹¹£¨CÓïÑ԰棩¿ÎºóÏ°Ìâ´ð°¸¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ819e04e73968011ca2009181

{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µÄ½áµãÊýÄ¿¡£ [ÌâÄ¿·ÖÎö]

Èôij¸ö½áµã×ó×ÓÊ÷¿ÕÓÒ×ÓÊ÷·Ç¿Õ»òÕßÓÒ×ÓÊ÷¿Õ×ó×ÓÊ÷·Ç¿Õ£¬Ôò¸Ã½áµãΪ¶ÈΪ1µÄ½áµã [Ëã·¨ÃèÊö]

int Level(BiTree bt) //²ã´Î±éÀú¶þ²æÊ÷£¬²¢Í³¼Æ¶ÈΪ1µÄ½áµãµÄ¸öÊý {int num=0; //numͳ¼Æ¶ÈΪ1µÄ½áµãµÄ¸öÊý

if(bt){QueueInit(Q); QueueIn(Q,bt);//QÊÇÒÔ¶þ²æÊ÷½áµãÖ¸ÕëΪԪËصĶÓÁÐ

while(!QueueEmpty(Q))

{p=QueueOut(Q); cout<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); //·Ç¿ÕÓÒ×ÓÅ®Èë¶Ó } // while(!QueueEmpty(Q)) }//if(bt) return(num);

}//·µ»Ø¶ÈΪ1µÄ½áµãµÄ¸öÊý

£¨7£©ÇóÈÎÒâ¶þ²æÊ÷ÖеÚÒ»Ìõ×µÄ·¾¶³¤¶È£¬²¢Êä³ö´Ë·¾¶Éϸ÷½áµãµÄÖµ¡£

[ÌâÄ¿·ÖÎö]ÒòΪºóÐò±éÀúÕ»Öб£Áôµ±Ç°½áµãµÄ×æÏȵÄÐÅÏ¢£¬ÓÃÒ»±äÁ¿±£´æÕ»µÄ×î¸ßÕ»¶¥Ö¸Õ룬ÿµ±ÍËջʱ£¬Õ»¶¥Ö¸Õë¸ßÓÚ±£´æ×î¸ßÕ»¶¥Ö¸ÕëµÄֵʱ£¬Ôò½«¸ÃÕ»µ¹È븨ÖúÕ»ÖУ¬¸¨ÖúջʼÖÕ±£´æ×·¾¶³¤¶ÈÉϵĽáµã£¬Ö±ÖÁºóÐò±éÀúÍê±Ï£¬Ôò¸¨ÖúÕ»ÖÐÄÚÈݼ´ÎªËùÇó¡£

[Ëã·¨ÃèÊö]

void LongestPath(BiTree bt)//Çó¶þ²æÊ÷ÖеĵÚÒ»Ìõ×·¾¶³¤¶È {BiTree p=bt,l[],s[];

XLI

//l, sÊÇÕ»£¬ÔªËØÊǶþ²æÊ÷½áµãÖ¸Õ룬lÖб£Áôµ±Ç°×·¾¶ÖеĽáµã int i£¬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Õ»£¬¼Çס×î¸ßÕ»¶¥Ö¸Õ룬ÍËÕ» }

else if(top>0) {tag[top]=1; p=s[top].Rc;} //ÑØÓÒ×Ó·ÖÖ¦ÏòÏ }//while(p!=null||top>0) }//½áÊøLongestPath

£¨8£©Êä³ö¶þ²æÊ÷ÖдÓÿ¸öÒ¶×Ó½áµãµ½¸ù½áµãµÄ·¾¶¡£

[ÌâÄ¿·ÖÎö]²ÉÓÃÏÈÐò±éÀúµÄµÝ¹é·½·¨£¬µ±ÕÒµ½Ò¶×Ó½áµã*bʱ£¬ÓÉÓÚ*bÒ¶×Ó½áµãÉÐδÌí¼Óµ½pathÖУ¬Òò´ËÔÚÊä³ö·¾¶Ê±»¹ÐèÊä³öb->dataÖµ¡£

[Ëã·¨ÃèÊö]

void AllPath(BTNode *b,ElemType path[],int pathlen) {int i; if (b!=NULL)

{if (b->lchild==NULL && b->rchild==NULL) //*bΪҶ×Ó½áµã {cout << \µ½¸ù½áµã·¾¶:\ for (i=pathlen-1;i>=0;i--) cout << endl;

} else

{path[pathlen]=b->data; //½«µ±Ç°½áµã·ÅÈë·¾¶ÖÐ pathlen++; //·¾¶³¤¶ÈÔö1 AllPath(b->lchild,path,pathlen); //µÝ¹éɨÃè×ó×ÓÊ÷ AllPath(b->rchild,path,pathlen); //µÝ¹éɨÃèÓÒ×ÓÊ÷ pathlen--; //»Ö¸´»·¾³ }

}// if (b!=NULL) }//Ëã·¨½áÊø

XLII

µÚ6Õ ͼ

1£®Ñ¡ÔñÌâ

£¨1£©ÔÚÒ»¸öͼÖУ¬ËùÓж¥µãµÄ¶ÈÊýÖ®ºÍµÈÓÚͼµÄ±ßÊýµÄ£¨ £©±¶¡£ A£®1/2 B£®1 C£®2 D£®4 ´ð°¸£ºC

£¨2£©ÔÚÒ»¸öÓÐÏòͼÖУ¬ËùÓж¥µãµÄÈë¶ÈÖ®ºÍµÈÓÚËùÓж¥µãµÄ³ö¶ÈÖ®ºÍµÄ£¨ £©±¶¡£ A£®1/2 B£®1 C£®2 D£®4 ´ð°¸£ºB

½âÊÍ£ºÓÐÏòͼËùÓж¥µãÈë¶ÈÖ®ºÍµÈÓÚËùÓж¥µã³ö¶ÈÖ®ºÍ¡£ £¨3£©¾ßÓÐn¸ö¶¥µãµÄÓÐÏòͼ×î¶àÓУ¨ £©Ìõ±ß¡£

A£®n B£®n(n-1) C£®n(n+1) D£®n2 ´ð°¸£ºB

½âÊÍ£ºÓÐÏòͼµÄ±ßÓз½ÏòÖ®·Ö£¬¼´Îª´Ón¸ö¶¥µãÖÐÑ¡È¡2¸ö¶¥µãÓÐÐòÅÅÁУ¬½á¹ûΪn(n-1)¡£ £¨4£©n¸ö¶¥µãµÄÁ¬Í¨Í¼ÓÃÁÚ½Ó¾àÕó±íʾʱ£¬¸Ã¾àÕóÖÁÉÙÓУ¨ £©¸ö·ÇÁãÔªËØ¡£ A£®n B£®2(n-1) C£®n/2 D£®n2 ´ð°¸£ºB

£¨5£©GÊÇÒ»¸ö·ÇÁ¬Í¨ÎÞÏòͼ£¬¹²ÓÐ28Ìõ±ß£¬Ôò¸ÃͼÖÁÉÙÓУ¨ £©¸ö¶¥µã¡£ A£®7 B£®8 C£®9 D£®10 ´ð°¸£ºC

½âÊÍ£º8¸ö¶¥µãµÄÎÞÏòͼ×î¶àÓÐ8*7/2=28Ìõ±ß£¬ÔÙÌí¼ÓÒ»¸öµã¼´¹¹³É·ÇÁ¬Í¨ÎÞÏòͼ£¬¹Ê

ÖÁÉÙÓÐ9¸ö¶¥µã¡£

£¨6£©Èô´ÓÎÞÏòͼµÄÈÎÒâÒ»¸ö¶¥µã³ö·¢½øÐÐÒ»´ÎÉî¶ÈÓÅÏÈËÑË÷¿ÉÒÔ·ÃÎÊͼÖÐËùÓеĶ¥µã£¬Ôò¸Ãͼһ¶¨ÊÇ£¨ £©Í¼¡£

A£®·ÇÁ¬Í¨ B£®Á¬Í¨ C£®Ç¿Á¬Í¨ D£®ÓÐÏò ´ð°¸£ºB

½âÊÍ£º¼´´Ó¸ÃÎÞÏòͼÈÎÒâÒ»¸ö¶¥µã³ö·¢Óе½¸÷¸ö¶¥µãµÄ·¾¶£¬ËùÒÔ¸ÃÎÞÏòͼÊÇÁ¬Í¨Í¼¡£ £¨7£©ÏÂÃ棨 £©Ëã·¨ÊʺϹ¹ÔìÒ»¸ö³íÃÜͼGµÄ×îСÉú³ÉÊ÷¡£

A£® PrimËã·¨ B£®KruskalËã·¨ C£®FloydËã·¨ D£®DijkstraËã·¨ ´ð°¸£ºA

½âÊÍ£ºPrimËã·¨ÊʺϹ¹ÔìÒ»¸ö³íÃÜͼGµÄ×îСÉú³ÉÊ÷£¬KruskalËã·¨ÊʺϹ¹ÔìÒ»¸öÏ¡Êè

ͼGµÄ×îСÉú³ÉÊ÷¡£

£¨8£©ÓÃÁÚ½Ó±í±íʾͼ½øÐйã¶ÈÓÅÏȱéÀúʱ£¬Í¨³£½èÖú£¨ £©À´ÊµÏÖËã·¨¡£ A£®Õ» B. ¶ÓÁÐ C. Ê÷ D£®Í¼ ´ð°¸£ºB

½âÊÍ£º¹ã¶ÈÓÅÏȱéÀúͨ³£½èÖú¶ÓÁÐÀ´ÊµÏÖËã·¨£¬Éî¶ÈÓÅÏȱéÀúͨ³£½èÖúÕ»À´ÊµÏÖËã·¨¡£

XLIII

£¨9£©ÓÃÁÚ½Ó±í±íʾͼ½øÐÐÉî¶ÈÓÅÏȱéÀúʱ£¬Í¨³£½èÖú£¨ £©À´ÊµÏÖËã·¨¡£ A£®Õ» B. ¶ÓÁÐ C. Ê÷ D£®Í¼ ´ð°¸£ºA

½âÊÍ£º¹ã¶ÈÓÅÏȱéÀúͨ³£½èÖú¶ÓÁÐÀ´ÊµÏÖËã·¨£¬Éî¶ÈÓÅÏȱéÀúͨ³£½èÖúÕ»À´ÊµÏÖËã·¨¡£ £¨10£©Éî¶ÈÓÅÏȱéÀúÀàËÆÓÚ¶þ²æÊ÷µÄ£¨ £©¡£

A£®ÏÈÐò±éÀú B£®ÖÐÐò±éÀú C£®ºóÐò±éÀú D£®²ã´Î±éÀú ´ð°¸£ºA

£¨11£©¹ã¶ÈÓÅÏȱéÀúÀàËÆÓÚ¶þ²æÊ÷µÄ£¨ £©¡£

A£®ÏÈÐò±éÀú B£®ÖÐÐò±éÀú C£®ºóÐò±éÀú D£®²ã´Î±éÀú ´ð°¸£ºD

£¨12£©Í¼µÄBFSÉú³ÉÊ÷µÄÊ÷¸ß±ÈDFSÉú³ÉÊ÷µÄÊ÷¸ß£¨ £©¡£

A£®Ð¡ B£®ÏàµÈ C£®Ð¡»òÏàµÈ D£®´ó»òÏàµÈ ´ð°¸£ºC

½âÊÍ£º¶ÔÓÚһЩÌØÊâµÄͼ£¬±ÈÈçÖ»ÓÐÒ»¸ö¶¥µãµÄͼ£¬ÆäBFSÉú³ÉÊ÷µÄÊ÷¸ßºÍDFSÉú

³ÉÊ÷µÄÊ÷¸ßÏàµÈ¡£Ò»°ãµÄͼ£¬¸ù¾ÝͼµÄBFSÉú³ÉÊ÷ºÍDFSÊ÷µÄË㷨˼Ï룬BFSÉú³ÉÊ÷µÄÊ÷¸ß±ÈDFSÉú³ÉÊ÷µÄÊ÷¸ßС¡£

£¨13£©ÒÑ֪ͼµÄÁÚ½Ó¾ØÕóÈçͼ6.30Ëùʾ£¬Ôò´Ó¶¥µãv0³ö·¢°´Éî¶ÈÓÅÏȱéÀúµÄ½á¹ûÊÇ£¨ £©¡£

ͼ6.30 ÁÚ½Ó¾ØÕó

£¨14£©ÒÑ֪ͼµÄÁÚ½Ó±íÈçͼ6.31Ëùʾ£¬Ôò´Ó¶¥µãv0³ö·¢°´¹ã¶ÈÓÅÏȱéÀúµÄ½á¹ûÊÇ£¨ £©£¬°´Éî¶ÈÓÅÏȱéÀúµÄ½á¹ûÊÇ£¨ £©¡£

ͼ6.31 ÁÚ½Ó±í

A£®0 1 3 2 ´ð°¸£ºD¡¢D

B£®0 2 3 1 C£®0 3 2 1 D£®0 1 2 3

XLIV