¾ßÓÐ3¸ö½áµãµÄÊ÷ ¾ßÓÐ3¸ö½áµãµÄ¶þ²æÊ÷
6.3ÒÑÖªÒ»¿Ã¶ÈΪkµÄÊ÷ÖÐÓÐn1¸ö¶ÈΪ1µÄ½áµã£¬n2¸ö¶ÈΪ2µÄ½áµã£¬¡¡£¬nk¸ö¶ÈΪkµÄ½áµã£¬Ôò¸ÃÊ÷ÖÐÓжàÉÙ¸öÒ¶×Ó½áµã£¿
¡¾½â´ð¡¿ÉèÊ÷Öнáµã×ÜÊýΪn,Ôòn=n0 + n1 + ¡¡ + nk
Ê÷ÖзÖÖ§ÊýĿΪB,ÔòB=n1 + 2n2 + 3n3 + ¡¡ + knk
ÒòΪ³ý¸ù½áµãÍ⣬ÿ¸ö½áµã¾ù¶ÔÓ¦Ò»¸ö½øÈëËüµÄ·ÖÖ§£¬ËùÒÔÓÐn= B + 1 ¼´n0 + n1 + ¡¡ + nk = n1 + 2n2 + 3n3 + ¡¡ + knk + 1
ÓÉÉÏʽ¿ÉµÃÒ¶×Ó½áµãÊýΪ£ºn0 = n2 + 2n3 + ¡¡ + (k-1)nk + 1
6.5ÒÑÖª¶þ²æÊ÷ÓÐ50¸öÒ¶×Ó½áµã£¬Ôò¸Ã¶þ²æÊ÷µÄ×ܽáµãÊýÖÁÉÙÓ¦ÓжàÉÙ¸ö£¿ ¡¾½â´ð¡¿n0±íʾҶ×Ó½áµãÊý£¬n2±íʾ¶ÈΪ2µÄ½áµãÊý£¬Ôòn0 = n2+1
ËùÒÔn2= n0 ¨C1=49£¬µ±¶þ²æÊ÷ÖÐûÓжÈΪ1µÄ½áµãʱ£¬×ܽáµãÊýn=n0+n2=99 6.6 ÊÔ·Ö±ðÕÒ³öÂú×ãÒÔÏÂÌõ¼þµÄËùÓжþ²æÊ÷:
(1) ǰÐòÐòÁÐÓëÖÐÐòÐòÁÐÏàͬ; (2) ÖÐÐòÐòÁÐÓëºóÐòÐòÁÐÏàͬ; (3) ǰÐòÐòÁÐÓëºóÐòÐòÁÐÏàͬ¡£ ¡¾½â´ð¡¿ (1) ǰÐòÓëÖÐÐòÏàͬ£º¿ÕÊ÷»òȱ×ó×ÓÊ÷µÄµ¥Ö§Ê÷£» (2) ÖÐÐòÓëºóÐòÏàͬ£º¿ÕÊ÷»òȱÓÒ×ÓÊ÷µÄµ¥Ö§Ê÷£» (3) ǰÐòÓëºóÐòÏàͬ£º¿ÕÊ÷»òÖ»Óиù½áµãµÄ¶þ²æÊ÷¡£
6.9 ¼ÙÉèͨѶµÄµçÎĽöÓÉ8¸ö×Öĸ×é³É£¬×ÖĸÔÚµçÎÄÖгöÏֵįµÂÊ·Ö±ðΪ£º
0.07£¬0.19£¬0.02£¬0.06£¬0.32£¬0.03£¬0.21£¬0.10 ÇëΪÕâ8¸ö×ÖĸÉè¼Æ¹þ·òÂü±àÂë¡£ ¡¾½â´ð¡¿
¹¹Ôì¹þ·òÂüÊ÷ÈçÏ£º
11
¹þ·òÂü±àÂëΪ£º
I1£º11111 I5£º1100 I2£º11110 I6£º 10
I3£º1110 I7£º 01 I4£º1101 I8£º 00
6.11»³öÈçÏÂͼËùʾÊ÷¶ÔÓ¦µÄ¶þ²æÊ÷¡£
¡¾½â´ð¡¿
12
6.16·Ö±ðд³öËã·¨£¬ÊµÏÖÔÚÖÐÐòÏßË÷¶þ²æÊ÷TÖвéÕÒ¸ø¶¨½áµã*pÔÚÖÐÐòÐòÁÐÖеÄǰÇýÓëºó¼Ì¡£ÔÚÏÈÐòÏßË÷¶þ²æÊ÷TÖУ¬²éÕÒ¸ø¶¨½áµã*pÔÚÏÈÐòÐòÁÐÖеĺó¼Ì¡£ÔÚºóÐòÏßË÷¶þ²æÊ÷TÖУ¬²éÕÒ¸ø¶¨½áµã*pÔÚºóÐòÐòÁÐÖеÄǰÇý¡£
£¨1£©ÕÒ½áµãµÄÖÐÐòǰÇý½áµã
BiTNode *InPre (BiTNode *p)
/*ÔÚÖÐÐòÏßË÷¶þ²æÊ÷ÖвéÕÒpµÄÖÐÐòǰÇý½áµã£¬²¢ÓÃpreÖ¸Õë·µ»Ø½á¹û*/ { if (p->Ltag= =1) pre = p->LChild; /*Ö±½ÓÀûÓÃÏßË÷*/ else
{/*ÔÚpµÄ×ó×ÓÊ÷ÖвéÕÒ¡°×îÓÒ϶ˡ±½áµã*/
for ( q=p->LChild; q->Rtag= =0; q=q->RChild); pre = q; }
return (pre); }
£¨2£©ÕÒ½áµãµÄÖÐÐòºó¼Ì½áµã
BiTNode *InSucc (BiTNode *p)
/*ÔÚÖÐÐòÏßË÷¶þ²æÊ÷ÖвéÕÒpµÄÖÐÐòºó¼Ì½áµã£¬²¢ÓÃsuccÖ¸Õë·µ»Ø½á¹û*/ { if (p->Rtag= =1) succ = p->RChild; /*Ö±½ÓÀûÓÃÏßË÷*/ else
{/*ÔÚpµÄÓÒ×ÓÊ÷ÖвéÕÒ¡°×î×ó϶ˡ±½áµã*/
for ( q=p->RChild; q->Ltag= =0; q=q->LChild);
13
succ= q; }
return (succ); }
(3) ÕÒ½áµãµÄÏÈÐòºó¼Ì½áµã
BiTNode *PreSucc (BiTNode *p)
/*ÔÚÏÈÐòÏßË÷¶þ²æÊ÷ÖвéÕÒpµÄÏÈÐòºó¼Ì½áµã£¬²¢ÓÃsuccÖ¸Õë·µ»Ø½á¹û*/ { if (p->Ltag= =0) succ = p->LChild; else succ= p->RChild; return (succ); }
(4) ÕÒ½áµãµÄºóÐòǰÇý½áµã
BiTNode *SuccPre (BiTNode *p)
/*ÔÚºóÐòÏßË÷¶þ²æÊ÷ÖвéÕÒpµÄºóÐòǰÇý½áµã£¬²¢ÓÃpreÖ¸Õë·µ»Ø½á¹û*/ { if (p->Ltag= =1) pre = p->LChild; else pre= p->RChild; return (pre); }
6.20ÒÑÖª¶þ²æÊ÷°´ÕÕ¶þ²æÁ´±í·½Ê½´æ´¢£¬ÀûÓÃÕ»µÄ»ù±¾²Ù×÷д³öÏÈÐò±éÀú·ÇµÝ¹éÐÎʽµÄËã·¨¡£ ¡¾½â´ð¡¿
Void PreOrder(BiTree root) /*ÏÈÐò±éÀú¶þ²æÊ÷µÄ·ÇµÝ¹éËã·¨*/ {
InitStack(&S); p=root;
while(p!=NULL || !IsEmpty(S) ) { if(p!=NULL) {
Visit(p->data); push(&S,p); p=p->Lchild;
}
else {
Pop(&S,&p); p=p->RChild; } } }
6.26¶þ²æÊ÷°´ÕÕ¶þ²æÁ´±í·½Ê½´æ´¢£¬±àдËã·¨½«¶þ²æÊ÷×óÓÒ×ÓÊ÷½øÐн»»»¡£ ¡¾½â´ð¡¿ Ëã·¨(Ò») Void exchange ( BiTree root )
{
p=root; if ( p->LChild != NULL || p->RChild != NULL )
14
}
Ëã·¨(¶þ) Void exchange ( BiTree root )
{
p=root; if ( p->LChild != NULL || p->RChild != NULL )
{
exchange ( p->LChild ); exchange ( p->RChild ); temp = p->LChild;
p->LChild = p->RChild;
p->RChild = temp; } }
µÚ°ËÕÂ
{ temp = p->LChild;
p->LChild = p->RChild; p->RChild = temp; exchange ( p->LChild ); exchange ( p->RChild ); }
µÚ°ËÕ´ð°¸
8£®1 ¡¾½â´ð¡¿ 5
ASLsucc=£¨1+2X2+3X4+4X3£©/10=2.9
8.5 ¡¾½â´ð¡¿
15
Ïà¹ØÍÆ¼ö£º