öλÔÓéÀֵǼÈë¿ÚÏÂÔØ

±±¾©½»Í¨´óѧ¼ÆËã»úöλÔÓéÀֵǼÈë¿ÚÏÂÔØöλÔÓéÀÖ¹Ù·½appÏÂÔØ¸¨µ¼°à±Ê¼Ç£¨Êý¾Ý½á¹¹£©(4)

±±¾©½»Í¨´óѧ /2009-04-04


  { if (pin[i]= =ch) b=true;
    else  i++;
  }
if (b= =true)  return i;
}
          Void Creat(Bitree &T, int pp, int pi, int n)
          //pre[]Ϊ¶þ²æÊ÷µÄÏÈÐòÐòÁУ¬ppΪ×ÓÊ÷ÔÚÏÈÐòÐòÁÐÖÐµÄÆðʼϱ꣬ino[]Ϊ¶þ²æÊ÷µÄÖÐÐòÐòÁУ¬piΪ×ÓÊ÷ÔÚÖÐÐòÖÐµÄÆðʼϱ꣬nΪÊ÷ÖнáµãÊý£»
            { if (n<=0)  T=Null;
             else
               { T=(BiTNode*)malloc(sizeof(BiTNode));
                 T->data=pre[pp];  m=pos(pre[pp],ino,pi);
                 Llen=m-pi;  Rlen=n-Llen-1;  //ÇóTµÄ×óÓÒ×ÓÊ÷ÔÚÖÐÐòÖеij¤¶È
                 Create(T->lch,pp+1,pi,Llen);  //½¨Á¢×ó×ÓÊ÷
                 Create(T->rch,pp+Llen+1,m+1,Rlen); //½¨Á¢ÓÒ×ÓÊ÷
               }
             }
£±£±. Óɶþ²æÊ÷µÄÖÐÐòºÍºóÐòÐòÁн¨Á¢¶þ²æÊ÷
ÄÜÊÖ¹¤×÷³ö£¬Ïà¹Ø³ÌÐò²ÎÔÄ£¨04Äê³ÌÐòÔĶÁµÚÒ»Ì⣩ÀÏʦûÓÐд³ö³ÌÐò¡£
£±£². °´¸ø¶¨µÄ±í´ïʽ½¨Á¢ÏàÓ¦¶þ²æÁ´±í
(£±) ÓÉÏÈ׺±í´ïʽ½¨Ê÷£¨ÓëÆÕͨ¶þ²æÊ÷µÄÇø±ðÊÇ£ºÎÞ¶ÈΪ1µÄ½áµã£¬Ö»ÓжÈΪ0»ò2µÄ½áµã£¬ÒòΪ²Ù×÷ÊýÓÐ2¸ö£©£¬¿ÉΨһȷ¶¨¶þ²æÊ÷
(£²) ÓÐÔ­±í´ïʽ½¨Ê÷£¬ÒªÏȽ«Æäת»¯Îª¶ÔÓ¦µÄÏÈ׺ÐÎʽ
13£®ÏßË÷¶þ²æÊ÷µÄ¶¨Òå
14£®ÏÈÐò±éÀú¶þ²æÊý£¨¿¼Ìî¿Õ»òÑ¡Ôñ£¬ÊéÉÏûÓУ¬¼Çס£©
(£±) ²ÉÓöþ²æÁ´±í
ÎÞÂÛÊÇ·ñÊÇÒ¶×Ó½áµã£¬ÕÒ½áµãPµÄÏÈÐòǰÇý¶¼²»ÈÝÒ×£¬µÃ´Ó¸ù½áµã¿ªÊ¼£»
ÈôP·ÇÒ¶×Ó£¬ÕÒPµÄÏÈÐòºó¼Ì£¬ÈÝÒ×£¨ÓÐ×óº¢×ӵľÍÊÇÆä×óº¢×Ó£¬ÎÞ×óº¢×ÓÔòÊÇÓÒº¢×Ó£©£¬²»ÓôӸù½áµã¿ªÊ¼£»ÈôPÊÇÒ¶×Ó½áµã£¬ÕÒÏÈÐòºó¼ÌÒ²²»ÈÝÒ×
(£²) ²ÉÓÃÏßË÷¶þ²æÁ´±í£¬ÕÒPµÄÏÈÐòǰÇý
(a) PÊǸù£¬Ç°ÇýΪ¿Õ£»
(b) PÊÇÆäË«Ç×µÄ×óº¢×Ó£¬Ç°ÇýΪ˫Ç×
(c) PÊÇÆäË«Ç×µÄÓÒº¢×Ó£¬ÇÒÎÞ×óÐÖ£¬ÔòǰÇýÊÇÆäË«Ç×
(d) PÊÇÆäË«Ç×µÄÓÒº¢×Ó£¬ÇÒÓÐ×óÐÖ£¬ÔòǰÇýÊÇÆä×óÐÖ×îÓÒϵÄÒ¶×Ó
¼´Ê¹ÊÇÏßË÷¶þ²æÁ´±í£¬ÕÒPµÄÏÈÐòǰÇý¾ù²»ÈÝÒ×
          £¨3£©²ÉÓÃÏßË÷¶þ²æÁ´±í£¬ÕÒPµÄÏÈÐòºó¼Ì
(a) PÓÐÓÒº¢×Ó
PÓÐ×óº¢×Ó£¬Ôòºó¼ÌΪÆä×óº¢×Ó£»
PÎÞ×óº¢×Ó£¬Ôòºó¼ÌΪÆäÓÒº¢×Ó£»
(b) PÎÞÓÒº¢×Ó£¬ Ôòºó¼ÌΪÆärch;
BinNode  *findson(BinNode *p)
   { if (p->ltag= =0)  return  p->lch; //pÓÐ×óº¢×Ó£¬ºó¼ÌΪ×óº¢
else return  p->rch;   //pÎÞ×󺢣¬ºó¼ÌΪÆäÓÒÖ¸Õë 
}
15. ÖÐÐò±éÀú¶þ²æÊ÷
    (1). ²ÉÓöþ²æÁ´±í
        Èô×óÓÒ×ÓÊ÷·Ç¿Õ£¬ÕÒpµÄÖÐÐòǰÇýºÍÖÐÐòºó¼ÌÈÝÒ×£¬²»ÓôӸù¿ªÊ¼
        Èô×óÓÒ×ÓÊ÷Ϊ¿Õ£¬ÕÒpµÄÖÐÐòºó¼ÌºÍǰÇý£¬²»ÈÝÒ×£¬µÃ´Ó¸ù¿ªÊ¼
16. ºóÐò±éÀú¶þ²æÊ÷
    (1). ²ÉÓöþ²æÁ´±í
        ÈôP·ÇÒ¶×Ó£¬ÔòÕÒPµÄºóÐòǰÇý£¬ÈÝÒ×£¬²»ÓôӸù¿ªÊ¼£»ÈôPÊÇÒ¶×Ó£¬ÕÒºóÐòǰÇý²»ÈÝÒ×£»
        ÕÒPµÄºóÐòºó¼Ì£¬ÎÞÂÛÊÇ·ñÊÇÒ¶×Ó£¬¶¼²»ÈÝÒ×£¬µÃ´Ó¸ù¿ªÊ¼
(2)²ÉÓÃÏßË÷¶þ²æÊ÷£¬ÕÒPµÄºóÐòǰÇý
(a). PÓÐ×óº¢×Ó
     PÓÐÓÒº¢×Ó£¬ÔòǰÇýΪÆäÓÒº¢
     PÎÞÓÒº¢×Ó£¬ÔòÆäǰÇýΪÆä×óº¢
(b).PÎÞ×óº¢×Ó£¬ ǰÇýΪÆälch
BinNode  *findpre(BiNode  *p)
  { if (p->rtag= =0) return  p->rch;  //PÓÐÓÒ£¬Ç°ÇýΪÓÒº¢×Ó
   else  return p->lch;  //pÎÞÓÒº¢£¬Ç°ÇýΪÆä×óÖ¸Õë¡£
          (3). ²ÉÓÃÏßË÷¶þ²æÊ÷£¬ÕÒPµÄºóÐòºó¼Ì
(a). PÊǸù£¬ ºó¼ÌΪ¿Õ
(b). PÊÇË«Ç×½áµãµÄÓÒº¢×Ó£¬ºó¼ÌΪ˫Ç×
(c). P ÊÇË«Ç×µÄ×óº¢×Ó£¬ÇÒÎÞÓÒÐÖ£¬ºó¼ÌΪ˫Ç×
(d).PÊÇË«Ç×½áµãµÄ×óº¢×Ó£¬ÓÐÓÒÐÖ£¬ºó¼ÌΪÓÒÐÖ×î×óϵÄÒ¶×Ó¡£
ºóÐòÏßË÷¶þ²æÁ´±íÖУ¬ÕÒºó¼Ì²»ÈÝÒ×
17. Ê÷µÄ´æ´¢½á¹¹
    Ê÷µÄ¶þ²æÁ´±í£¨º¢×Ó-Ðֵܣ©´æ´¢±íʾ·¨£¨±ØÐëÕÆÎÕ£©
18. É­ÁÖת»»³É¶þ²æÊ÷£º½«¸÷¿ÆÊ÷·Ö±ðת»»³É¶þ²æÊ÷£¬½«¸ù½áµãÓÃÏßÏàÁ¬£¬ÒÔµÚÒ»¿ÃÊ÷¸ù½áµã×÷ΪÊ÷µÄ¸ù£¬°ÑÏß˳ʱÕëת45¶È
19. ¶þ²æÊ÷ת»¯³ÉÉ­ÁÖ£º
¡¡¡¡Ò»Ä¨Ïߣº¡¡½«¶þ²æÊ÷ÖеĸùÓëÆäÓÒº¢×ÓµÄÁ¬Ïߣ¬¼°ÓÒ·ÖÖ§ËÑË÷µ½µÄËùÓÐÓÒº¢×ÓµÄÁ¬ÏßÈ«²¿Ä¨µô£¬Ê¹Ö®±ä³É¹ÂÁ¢µÄ¶þ²æÊ÷¡£
¡¡¡¡Ò»»¹Ô­£º¡¡½«¹ÂÁ¢µÄ¶þ²æÊ÷»¹Ô­³ÉÊ÷
£²£°. Ê÷µÄ±éÀú¡¡£¨Ïȸù£¬ºó¸ù£©
£²£±. É­ÁֵıéÀú
(£±) ÏÈÐò±éÀú£º¼´ÒÀ´Î´Ó×óÖÁÓÒ¶ÔÉ­ÁÖÖеÄÿһ¿ÃÊ÷½øÐÐÏȸù±éÀú
(£²) ÖÐÐò±éÀú£º¼´ÒÀ´Î´Ó×óÖÁÓÒ¶ÔÉ­ÁÖÖеÄÿ¿ÃÊ÷½øÐкó¸ú±éÀú
£²£². Ê÷£¬¶þ²æÊ÷£¬É­ÁÖ±éÀúµÄ¶ÔÓ¦¹ØÏµ
Ê÷            É­ÁÖ                ¶þ²æÊ÷
           Ïȸù           ÏÈÐò                ÏÈÐò
           ºó¸ù           ÖÐÐò                ÖÐÐò
23£®ÇóÊ÷µÄÉî¶ÈµÄËã·¨
     µÝ¹é¹«Ê½ÈçÏ£º
    depth(t)=0               Èôt=Null
    depth(t)=max{depth(t->firstchilid)+1, depth(t->nextsibling)}
  int TreeDepth(CsTree T)
    { if (!T)  return();
     else {  h1=TreeDepth(T->firstchild);
           h2=TreeDepth(T->nextsibling);
           return(max((h1+1),h2));  //Ìî³ÌÐòʱ²»ÄÜÖ±½ÓдMax£¬ÒªÐ´³É¿ÉÖ´ÐÐÓï¾ä£¨ÓÃif  else £©
         }
      return ((h1+1)>h2 ? (h1+1): h2);
     }
24.¹éÇóÊ÷ÖÐÒ¶×Ó½áµãµÄ¸öÊý £¨04ÄêÕæÌ⣩
Ê÷ÖеÄÒ¶×Ó½áµãÊǶþ²æÊ÷ÖÐfirstchild Ϊ¿ÕµÄ½áµã
½â1£º   int  Countleaf(CsNode *T)
   {int leaf; CsNode *T1;
if (!T)   return 0;
else {if (!T->fch) return 1;
    else  { leaf=0; T1=T->fch;
           while (T1)
             {leaf=leaf+Countleaf(T1);
              T1=T1->nsib;
             }
           return leaf;
          }
    }
        }
½â2£º  int Countleaf(CsNode *T)
         {  int leaf; CsNode *T1;
            if (!T)  return 0;
            else {  if (!T->fch)
                    { leaf=1+Countleaf(T->nsb);  return(leaf);}
                  else 
                    { leaf=Countleaf(T->fch)+Countleaf(T->nsb);  return(leaf)}

Ïà¹Ø»°Ìâ/

  • ÁìÏÞʱ´ó¶îÓÅ»Ýȯ,Ïí±¾Õ¾Õý°æöλÔÓéÀֵǼÈë¿ÚÏÂÔØöλÔÓéÀÖ¹Ù·½appÏÂÔØ!
    ´ó¶îÓÅ»Ýȯ
    ÓÅ»ÝȯÁìÈ¡ºó72СʱÄÚÓÐЧ£¬10ÍòÖÖ×îÐÂöλÔÓéÀֵǼÈë¿ÚÏÂÔØ¿¼Ö¤Ààµç×Ó´òÓ¡öλÔÓéÀÖ¹Ù·½appÏÂÔØÈÎÄãÑ¡¡£º­¸ÇÈ«¹ú500ÓàËùԺУöλÔÓéÀÖ¹Ù·½appÏÂÔØöλÔÓéÀֵǼÈë¿ÚÏÂÔØ¿Î¡¢200¶àÖÖÖ°Òµ×ʸñöλÔÓéÀֵǼÈë¿ÚÏÂÔØ¡¢1100¶àÖÖ¾­µä½Ì²Ä£¬²úÆ·ÀàÐͰüº¬µç×ÓÊé¡¢Ìâ¿â¡¢È«Ì×öλÔÓéÀÖ¹Ù·½appÏÂÔØÒÔ¼°ÊÓÆµ£¬ÎÞÂÛÄúÊÇöλÔÓéÀÖ¹Ù·½appÏÂÔØ¸´Ï°¡¢¿¼Ö¤Ë¢Ì⣬»¹ÊÇ¿¼Ç°³å´ÌµÈ£¬²»Í¬ÀàÐ͵IJúÆ·¿ÉÂú×ãÄúѧϰÉϵIJ»Í¬ÐèÇó¡£ ...
    öλÔÓéÀֵǼÈë¿ÚÏÂÔØÓÅ»Ýȯ ±¾Õ¾Ð¡±à FreeÒ¼°Û·ÖÑ§Ï°Íø 2022-09-19
öλÔÓéÀÖ(xinhui)¹Ù·½ÍøÕ¾_öλÔÓéÀÖappÏÂÔØÈë¿Ú