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

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

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


n0+n1+¡­.+Nm=¡Æi*ni  +1 £¨ÇóºÍµÄÏÂÏÞÊÇi=1,ÉÏÏÞÊÇm£©
n0=¡Æ(i-1)*ni  +1
£³. Á½ÀàÌØÊâµÄ¶þ²æÊ÷£º¡¡Âú¶þ²æÊ÷£¨½áµãÊýΪ2**k-1¸ö£©£¬ÍêÈ«¶þ²æÊ÷£¨½áµãºÅÓëÂú¶þ²æÊ÷±ØÐë¶ÔÓ¦£©
£´. ÐÔÖÊ£´µÄÖ¤Ã÷¡¡£¨ÊéÉÏÓÐÖ¤Ã÷£©
£µ. ¶þ²æÊ÷µÄ´æ´¢½á¹¹£¨ÊéÉϵ͍ÒåÒ»¶¨Òª¼Çס£©
˳Ðò´æ´¢½á¹¹¡¡¡¡¡¡¡¡Á´Ê½´æ´¢
¶þ²æ£º¡¡¡¡¿ÕÓò¡¡¡¡¡¡n+1
Èý²æ£º    ¿ÕÓò      n+2
Ò»°ãÓУºÔÚÒ»¿ÃÓÐn¸ö½áµã£¬¶ÈΪkµÄÊ÷ÖбØÓÐn*(k-1)+1¸ö¿ÕÁ´Óò
£¶. ¸÷ÖÖ±éÀúµÄµÝ¹éºÍ·ÇµÝ¹éËã·¨¾ùÓ¦ÊìÁ·ÕÆÎÕ
ÖÐÐò·ÇµÝ¹é¼ûP130
ÏÈÐò·ÇµÝ¹é²Î¿´Ïà¹ØµÄöλÔÓéÀÖ¹Ù·½appÏÂÔØ
ºóÐò·ÇµÝ¹é£º
Void  postorder_fei(BinNode   *t)
{¡¡BinNode   *p;
  ¡¡¡¡¡¡¡¡¡¡printf(¡°post_order_fei :  ¡°');
  ¡¡¡¡¡¡¡¡ ¡¡top=0; stack[top]=t;
   ¡¡¡¡¡¡¡¡¡¡while (top!=-1)
    ¡¡¡¡¡¡¡¡¡¡{   while (stack[top])
           ¡¡¡¡¡¡ {   top=top+1; 
                ¡¡¡¡¡¡stack[top]=stack[top-1]->lch;
                ¡¡¡¡¡¡top=top-1;
 if  (top!=-1)
                ¡¡¡¡¡¡¡¡¡¡{  p=stack[top];
                   ¡¡¡¡¡¡¡¡¡¡¡¡if( (!p->rch) || (p->rch->visited==1))
                       ¡¡¡¡¡¡¡¡¡¡  {  stack[top]=null;
                           ¡¡¡¡¡¡¡¡¡¡ printf(¡°%c¡±,p->data);   p->visited=1;
                        ¡¡¡¡¡¡¡¡¡¡ }
                  ¡¡¡¡¡¡¡¡¡¡¡¡else
                   ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ {  top=top+1;  stack[top]=p->rch;  }
                ¡¡¡¡¡¡¡¡¡¡}
}
}
¡¡¡¡¡¡¡¡¡¡£ý
£·. ±éÀúËã·¨µÄÓ¦ÓþÙÀý
(£±) Çó¶þ²æÊ÷ÖÐÒ¶×Ó½áµãµÄ¸öÊý¡££¨ÏÈÐò£¨ÖÐÐò£¬ºóÐò£©±éÀú¶þ²æÊ÷£¬ÉèÒ»¸öÈ«¾Ö±äÁ¿×÷Ϊ¼ÆÊýÆ÷£¬×óÓÒÖ¸ÕëΪ¿ÕµÄ½áµãΪҶ½áµã£©
int countleaf(BinTree  T)
  { int n1,n2;
   if (!T) return 0;
  else { if ((!T->lchild)&&(!T->rchild))
       return 1;
       else { n1=countleaf(T->lchild); //n1´æ·Å×ó×ÓÊ÷µÄÒ¶½áµãÊý
            n2=countleaf(T->rchild);// n2´æ·ÅÓÒ×ÓÊ÷µÄÒ¶½áµãÊý
            return(n1+n2);
           }
       }
  }
(£²) Çó¶þ²æÊ÷Éî¶È£¨ºóÐò±éÀú¡¡£©
»ù±¾Ë¼Ï룺¶þ²æÊ÷µÄÉî¶ÈΪ×óÓÒ×ÓÊ÷µÄ×î´óÉî¶È¼Ó£±
int  Depth(BinTree T)
 { int  dep,dep1,dep2;
   if (!T) dep=0;
   else { dep1=Depth(T->lch);
        dep2=Depth(T->rch);
dep=1+(dep1>dep2 ? dep1: dep2);
                   }
                 return dep;
}
(£³) ¸´Öƶþ²æÊ÷£¨ÏÈÐò±éÀú£©
Void copytree(BinTree root, BinTree *newroot) //newrootΪָÏòÖ¸ÕëµÄÖ¸Õë
¡¡£ûif (!root) *newroot=Null;
else
   { *newroot=(BinNode*)malloc(sizeof(BinNOde));
    (*newroot)->data=root->data;
    copytreer(root->lchild, &((*newroot)->lchild));//¸´ÖƵ½×ó×ÓÊ÷
    copytree(root->rchild, &((*newroot)->rchild));//¸´ÖƵ½ÓÒ×ÓÊ÷
¡¡£ý
£ý
(£´) ½»»»¶þ²æÊ÷µÄ×óÓÒ×ÓÊ÷(ÀàËÆÏÈÐò±éÀú£¬ÓúóÐòÒ²¿ÉÒÔ£¬µ«ÖÐÐò²»ÐÐ)
Void  exchange(BinNode *T)
 { BinNode *q;
  if (T)
{ q=T->lchild;
  T->lchild=T->rchild;
  T->rchild=q;
  exchange(T->lchild);
  exchange(T->rchild);
}
}
¡¡¡¡¡¡¡¡¡¡(5)½¨Á¢¶þ²æÊ÷µÄ´æ´¢½á¹¹£¨²»Í¬µÄ¶¨Òå·½·¨ÏàÓ¦Óв»Í¬µÄ´æ´¢½á¹¹£¬ÏÖÒÔ×Ö·û´®µÄÐÎʽ¡¡¸ù¡¡×ó×ÓÊ÷¡¡¡¡ÓÒ×ÓÊ÷¶¨ÒåÒ»¿Ã¶þ²æÊ÷£¨¼´¶þ²æÊ÷µÄÀ©Õ¹ÐòÁУ©
¡¡¡¡¡¡¡¡¡¡¡¡È磺¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
 ¡¡¡¡ÒÔ×Ö·û´®AB*C**D** (*ºÅ±íʾ¿Õ×Ö·û)
status  CreatBitree(BiTree &T) //°´ÏÈÐòÀ©Õ¹ÐòÁн¨Á¢¶þ²æÊ÷µÄµÝ¹éËã·¨
¡¡£û¡¡scanf(&ch);
      if (ch= =¡¯ ¡®) T=Null;
      else{ if (!(T=(BinNode*)malloc(sizeof(BinNode))));
            exit(overflow);
           T->data=ch;
           CreatBitree(T->lchild);
           CreatBitree(T->rchild);
         }
     return ok;
   }
7. ÒÑÖª°´Ä³¹æÂɱéÀú¶þ²æÊ÷µÄ·ÇÀ©Õ¹ÐòÁУ¨Ò²¼´ÓÉÏÈÐò£¬ÖÐÐò£¬ºóÐò±éÀú¶øµÃµÄÐòÁУ©£¬ÊÇ·ñ¿ÉÒÔΨһȷ¶¨¸Ã¶þ²æÊ÷µÄ½á¹¹£¿
½áÂÛ£º°´Ä³¹æÂɱéÀú¶þ²æÊ÷µÄ·ÇÀ©Õ¹ÐòÁв»ÄÜΨһȷ¶¨¸Ã¶þ²æÊ÷µÄ½á¹¹
£¸. ÒÑÖª°´Ä³¹æÂɱéÀú¶þ²æÊ÷µÄÀ©Õ¹ÐòÁУ¬ÄÜ·ñΨһȷ¶¨¸Ã¶þ²æÊ÷µÄ½á¹¹£¿
½áÂÛ£ºÏÈÐòÀ©Õ¹ÐòÁÐÄÜΨһȷ¶¨¡¡¡¡¡¡ÖÐÐòÀ©Õ¹ÐòÁв»ÄÜΨһȷ¶¨
ºóÐòÀ©Õ¹ÐòÁÐÄÜΨһȷ¶¨£¨´ÓºóÍùÇ°ÍÆµ¼£©
¡¡¡¡¡¡¡¡¡¡//°´ºóÐò±éÀúÀ©Õ¹ÐòÁн¨Á¢¶þ²æÊ÷½á¹¹µÄµÝ¹éËã·¨
¡¡¡¡¡¡¡¡¡¡Void crt_bt_post(Bitreeptr *bt)
           { if (i>=s.len)  //IÊÇÈ«¾Ö±äÁ¿£¬³õʼֵΪ£°£¬s´æ·ÅºóÐòÀ©Õ¹ÐòÁÐ×Ö·ûºÍ³¤¶È
{ bt=stack[top]; top=top-1;} //ÈëÕ»
else
  { i++; c=s.ch[i];¡¡
¡¡¡¡if (c=¡¯ ¡®) *bt=Null;
    else { *bt=(BiNode*)malloc(sizeof(BiNode));
         (*bt)->data=c;
         (*bt)->rch=stack[top]; top=top-1;
         (*bt)->lch=stack[top]; top=top-1;
       }
   top=top+1; stack[top]=*bt;
   crt_bt_post(&bt);
 }
}
£¹. ²ã´Î±éÀúij¶þ²æÊ÷µÄÀ©Õ¹ÐòÁпÉÒÔΨһȷ¶¨¶þ²æÊ÷µÄ´æ´¢½á¹¹
°´²ã´Î±éÀúµÄÀ©Õ¹ÐòÁн¨Á¢¶þ²æÊ÷·ÇµÝ¹éËã·¨£¨pascal£©
getnode(var bt: bitreptr)
 begin
 i=i+1; e=s.ch[i];
  if (c=¡¯ ¡®) then bt=nil;
  else begin
new(bt); bt->data=c; que.rear=que.rear+1; que.elem[que.rear]=bt;
end
 end
proceede crt_bt_level( var bt:bitreptr)
 var p:bitreptr;
begin
   que.front=0;  que.rear=0;  getnode(bt);
   while que.rear<>que.front do
begin
  que.front=que.front+1;
  p=que.elem[que.front];
  getnode(p->lch); getnode(p->rch);
end
          end
£±£°. Óɶþ²æÊ÷µÄÏÈÐòºÍÖÐÐò½¨Á¢¶þ²æÊ÷£¨ÒªÇó»áÊÖ¹¤×ö£©
Int pos(char ch; char pin[]; int start)  //¶¨Î»£ºchÔÚÖÐÐòÖеÄλÖÃ
  { i=start;   b=false;
while ((i<=n)&&!b)

Ïà¹Ø»°Ìâ/

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