µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

ÑÏεÃô-Êý¾Ý½á¹¹¼¯ºÏϰÌâ

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2026/1/3 21:30:22 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

int count£»

struct node * llink£¬*rlink£» }BiTNode£¬*BSTree£»

void Search_InsertX(BSTree t£¬datatype X£© //ÔÚ¶þ²æÅÅÐòÊ÷tÖвéÕÒֵΪXµÄ½áµã£¬Èô²éµ½£¬ÔòÆä½áµãµÄcountÓòÖµÔö1£¬·ñÔò£¬

//½«Æä²åÈëµ½¶þ²æÅÅÐòÊ÷ÖС£

{p=t£»

while£¨p!=null && p->data!=X£© //²éÕÒֵΪXµÄ½áµã£¬fÖ¸Ïòµ±Ç°½áµãµÄË«Ç× {f=p£»

if£¨p->datarlink; else p=p->llink;} if£¨!p£© // ÎÞֵΪxµÄ½áµã£¬²åÈëÖ®

{p=£¨BiTNode *£©malloc(sizeof £¨BiTNode£©£©£» p->data=X£»p->llink=null£»p->rlink=null£»

if£¨f->data>X£©f->llink=p£»else f->rlink=p£» }

else p->count++£»// ²éѯ³É¹¦£¬ÖµÓòΪXµÄ½áµãµÄcountÔö1¡£ }// Search_InsertX

17£®[ÌâÄ¿·ÖÎö] ÒòΪ¶þ²æÊ÷¸÷½áµãÒѱêÃ÷ÁËÆ½ºâÒò×Ób£¬¹Ê´Ó¸ù½áµã¿ªÊ¼¼ÇÊ÷µÄ²ã´Î¡£¸ù½áµãµÄ²ã´ÎΪ1£¬Ã¿ÏÂÒ»²ã£¬²ã´Î¼Ó1£¬Ö±µ½²ãÊý×î´óµÄÒ¶×Ó½áµã£¬Õâ¾ÍÊÇÆ½ºâ¶þ²æÊ÷µÄ¸ß¶È¡£µ±½áµãµÄƽºâÒò×ÓbΪ0ʱ£¬ÈÎÑ¡×óÓÒÒ»·ÖÖ¦ÏòϲéÕÒ£¬Èôb²»Îª0£¬ÔòÑØ×󣨵±b=1ʱ£©»òÓÒ£¨µ±b=-1ʱ£©ÏòϲéÕÒ¡£ int Height£¨BSTree t£© // ÇóÆ½ºâ¶þ²æÊ÷tµÄ¸ß¶È {level=0£»p=t£» while£¨p£©

{level++£» // Ê÷µÄ¸ß¶ÈÔö1

if£¨p->bf<0£©p=p->rchild£»//bf=-1 ÑØÓÒ·ÖÖ¦ÏòÏÂ

//bfÊÇÆ½ºâÒò×Ó£¬ÊǶþ²æÊ÷t½áµãµÄÒ»¸öÓò£¬Òòƪ·ùËùÏÞ£¬Ã»ÓÐд³öÆä´æ

´¢¶¨Òå

else p=p->lchild£» //bf>=0 ÑØ×ó·ÖÖ¦ÏòÏÂ

}//while

return £¨level£©£»//ƽºâ¶þ²æÊ÷µÄ¸ß¶È

} //Ëã·¨½áÊø

18£®[ÌâÄ¿·ÖÎö]¶þ²æÅÅÐòÊ÷µÄ½¨Á¢ÎÊÌâÇë²Î¼ûÉÏÃæÌâ3£¨1£©¡£½«¶þ²æÅÅÐòÊ÷Éϵĸ÷ÕûÊý°´½µÐòдÈë´ÅÅ̵ÄÎÊÌ⣬Ҫ¶Ô¶þ²æÅÅÐòÊ÷½øÐС°ÖÐÐò±éÀú¡±¡£ÕâÀïµÄ¡°ÖÐÐò±éÀú¡±Òª²ÉÈ¡¡°ÓÒ¸ù×󡱡£Îª·½±ãÆð¼û£¬ÏȽ«ÕûÊýдÈëһȫ¾Ö±äÁ¿Êý×éÖУ¬ÔÙдÈë´ÅÅÌÎļþÖС£

int i=0,a[n];//³¤¶ÈΪnµÄÕûÐÍÊý×é void InOrder(BSTree t)

//ÏÈÓÒºó×óµÄÖÐÐò±éÀú¶þ²æÅÅÐòÊ÷t£¬¼Ù¶¨¸ÃÊ÷tÒÑÔÚ±¾Ì⣨1£©ÖÐÉú³É {if (t)

{ InOrder(t->rchild) a[i++]=t->key; InOrder(t->lchild) }

}//InOrder

void SaveToDisk()

//½«¶þ²æÅÅÐòÊ÷Éϵĸ÷ÕûÊý°´½µÐòдÈë´ÅÅÌ {FILE *fp;

if ((fp=fopen(¡°file1.dat¡±, ¡°wb¡±))==null) {printf(¡°file can not open!\\n¡±);exit(0); }

fwrite(a,sizeof (int),n,fp);//½«Êý×éaÖеÄn¸öÕûÊýдÈë´ÅÅÌ fclose(fp);//¹Ø±ÕÎļþ }//SaveToDisk

19£®±¾ÌâµÄ·ÖÎöͬµÚ18Ìâ¡£ÕâÀïÖ±½Óд³öËã·¨ £¨1£©µÝ¹éËã·¨

void DecPrint(BSTree t£©

//µÝ¼õÐòÊä³ö¶þ²æÅÅÐòÊ÷tÖÐËùÓÐ×ó×ÓÊ÷Ϊ¿ÕÓÒ×ÓÊ÷·Ç¿ÕµÄ½áµãÊý¾ÝÓòµÄÖµ¡£ {if£¨t£©

{DecPrint(t->rchild)£»

if£¨!t->lchild && t->rchild£©printf(t->data£º4£© DecPrint(t->lchild£©£» }

}//DecPrint £¨2£©·ÇµÝ¹éËã·¨

void DecPrint(BSTree t£©

// µÝ¼õÐòÊä³ö¶þ²æÅÅÐòÊ÷tÖÐËùÓÐ×ó×ÓŮΪ¿ÕÓÒ×ÓÅ®·Ç¿ÕµÄ½áµãµÄÖµ {BSTree S[]£»//SÊǶþ²æÅÅÐòÊ÷½áµãÖ¸ÕëµÄÕ»£¬ÈÝÁ¿×ã¹»´ó int top=0£»

while£¨t || top>0£© {while£¨t£©

{S[++top]=t£»t=t->rchild £»} //ÑØÓÒ·ÖÖ¦ÏòÏ if£¨top>0£© {t=S[top--]£»

if£¨!t->lchild && t->rchild£©printf(t->data£º4)£» t=t->lchild£» // È¥×ó·ÖÖ¦

}//if

}//while }//Ëã·¨½áÊø

20£®[ÌâÄ¿·ÖÎö]ÕâÊÇÒ»¸öÔÚµ¥Á´±íÖвéÕÒ½áµã£¬ÔÚ½áµãÄÚ²éÕÒ¸ø¶¨ÖµµÄ¹ý³Ì£¬Ïȶ¨Òå´æ´¢½á¹¹£º

typedef struct node

{int A[m]£» //ÿ¸ö½áµãÄÚº¬ÓÐm¸öÕýÕûÊý£¬±¾ÀýÖÐmΪ5 struct node *next£»//Ö¸ÏòÏÂÒ»½áµãµÄÖ¸Õë }LNode£¬*LinkList£» typedef struct

{int j£»// ÕýÕûÊýÔÚ½áµãÄÚµÄÐòºÅ struct node *s£»// ½áµãµÄÖ¸Õë }rcd;

rcd *LSearch(LinkList head,int n)

//ÔÚÁ´±íÖвéÕÒÕýÕûÊýn£¬Èô²éÕҳɹ¦£¬·µ»Ø¸Ã½áµãÖ¸Õë¼°nÔÚ½áµãÖеÄÐòºÅ£» //·ñÔò·µ»Ø¿ÕÖ¸Õë±íʾʧ°Ü¡£ {rcd *R;

P=head->next£»// ¼Ù¶¨Á´±í´øÍ·½áµã£¬PÖ¸ÏòÁ´±íµÚÒ»ÔªËØ½áµã found=0£»

while£¨P && !found£© {for(i=0;i

if(P->A[i]==n) found=1 //²éÕҳɹ¦ P=P->next; //ÏÂÒ»½áµã }

if£¨P==null£©return £¨null£©£»

else {R.j=i; R.s=P; return £¨R£©£»} }//LSearch

21£®int Search£¨rectype R[]£¬int n,K£©

// ÔÚ¾ßÓÐn¸öÔªËØµÄÓÐÐò±íRÖУ¬Ë³Ðò²éÕÒֵΪKµÄ½áµã£¬²éÕҳɹ¦·µ»ØÆäλÖ㬠//·ñÔò·µ»Ø-1±íʾʧ°Ü {i=0£»

while£¨i

{if£¨R[i]==K£© return £¨i£©£»

else if£¨R[i]>K£© return £¨-1£©£» i++;

}//while

return £¨-1£©£» }//½áÊøsearch

ÔڵȸÅÂÊÇé¿öÏ£¬Ôò²éÕҳɹ¦µÄƽ¾ù²éÕÒ³¤¶ÈΪ£¨n+1£©/2£¬²éÕÒʧ°ÜµÄƽ¾ù²éÕÒ³¤¶ÈΪ£¨n+2£©/2£¨Ê§°ÜλÖóýСÓÚÿһ¸ö£¬»¹´æÔÚ´óÓÚ×îºóÒ»¸ö£©¡£Èô²éÕҳɹ¦ºÍ²»³É¹¦µÄ¸ÅÂÊÒ²ÏàµÈ£¬Ôò²éÕҳɹ¦Ê±ºÍ¹Ø¼ü×ֱȽϵĸöÊýµÄÆÚÍûֵԼΪ(n+1)/4¡£

22£®[ÌâÄ¿·ÖÎö]±¾Ìâ²ÉÓÃÖÐÐò±éÀú£¬½«±éÀú½áµãÓëǰÇý±È½Ï£¬ÈôÏàͬ£¬Ôò²»Êä³ö²¢¼ÇÊý¡£ void BSTPrint(BSTree t,int *count£©

//µÝÔöÐòÊä³ö¶þ²æÅÅÐòÊ÷ÖнáµãµÄÖµ£¬ÂËÈ¥ÖØ¸´ÔªËØ

{if£¨t£©

{BSTPrint(t->lchild)£» //ÖÐÐò±éÀú×ó×ÓÊ÷

if£¨pre==null£©pre=t; //preÊǵ±Ç°·ÃÎʽáµãµÄǰÇý,µ÷Óñ¾Ë㷨ʱ³õֵΪnull else if(pre->key==t->key)*count++;//*count¼ÇÖØ¸´ÔªËØ£¬µ÷Óñ¾Ë㷨ʱ³õֵΪ0

else {printf£¨¡°M¡±,t->key£©£»pre=t£»} // ǰÇýºóÒÆ

BSTPrint(t->rchild)£» //ÖÐÐò±éÀúÓÒ×ÓÊ÷ }//if

}//½áÊøBSTPrint Ëã·¨

23£®[ÌâÄ¿·ÖÎö]±¾ÌâËã·¨Ö®Ò»ÊÇÈçÉÏÌâÒ»Ñù£¬ÖÐÐò±éÀú¶þ²æÊ÷£¬ÔÚ¡°·ÃÎʸù½áµã¡±´¦ÅжϽáµãÖµÊÇ·ñ¡Ýx£¬ÈçÊÇÔòÊä³ö£¬²¢¼ÇסµÚÒ»¸ö¡ÝxÖµ½áµãµÄÖ¸Õë¡£ÕâÀï¸ø³öÁíÒ»¸öËã·¨£¬ÀûÓöþ²æÅÅÐòÊ÷µÄÐÔÖÊ£¬Èç¹û¸ù½áµãµÄÖµ>=x,Ôò³ý×ó·ÖÖ¦ÖпÉÄÜÓÐ

´Ó¸ù½áµã¿ªÊ¼²éÕÒ£¬ÕÒµ½½áµãÖµ

// ÖÐÐòÊä³öÒÔtΪ¸ùµÄ¶þ²æÅÅÐòÊ÷µÄ½áµã {if£¨t£©{Print£¨t->lchild£©£» printf£¨t->data£º4£©£» Print£¨t->rchild£©£» } }

void PrintAllx(BSTree bst£¬datatype x£©

//ÔÚ¶þ²æÅÅÐòÊ÷bstÖУ¬²éÕÒÖµ¡ÝxµÄ½áµã²¢Êä³ö

{p=bst£» if£¨p£©

{while£¨p && p->datarchild£»//ÑØÓÒ·ÖÖ¦ÕÒµÚÒ»¸öÖµ¡ÝxµÄ½áµã bst=p; //bstËùÖ¸½áµãÊÇÖµ¡ÝxµÄ½áµãµÄÊ÷µÄ¸ù if£¨p£©

{f=p; p=p->lchild £»//ÕÒµÚÒ»¸öÖµ

while£¨p && p->data¡Ýx£©//ÑØ×ó·ÖÖ¦ÏòÏ£¬ÕÒµÚÒ»¸öÖµ

{f=p£»p=p->lchild £»} //fÊÇpµÄË«Ç×½áµãµÄÖ¸Õ룬ÇÒÖ¸ÏòµÚÒ»¸öÖµ¡ÝxµÄ½áµã

if(p) f->lchild=null; //Ë«Ç×ÓëÕÒµ½µÄµÚÒ»¸öÖµ

Print(bst)£»//Êä³öÒÔbstΪ¸ùµÄ×ÓÊ÷

}//while }//ÄÚ²ãif£¨p£© }//µÚÒ»²ãif£¨p£©

}//PrintAllx

24£®[ÌâÄ¿·ÖÎö] ÒòΪTÊǶþ²æÅÅÐòÊ÷£¬Ôò¿ÉÀûÓöþ²æÅÅÐòÊ÷µÄÐÔÖÊ£¬´Ó¸ùÍùϲéÕÒ½áµã*x¡£ÈôTµÄ×ó×ÓÊ÷Ϊ¿Õ£¬ÔòÆäÖÐÐòÐòºÅΪ1£¬·ñÔòΪT->lchild->size+1¡£ÉèTµÄÖÐÐòÐòºÅΪr£¬Æä×ó×ÓÅ®pµÄÖÐÐòÐòºÅºÍÓÒ×ÓÅ®qµÄÖÐÐòÐòºÅ·Ö±ðΪr-p->rchild->size-1ºÍr+q->lchild->size+1¡£

int Rank£¨tree T£¬node *x£©

// ÔÚ¶þ²æÅÅÐòÊ÷TÉÏ£¬Çó½áµãxµÄÖÐÐòÐòºÅ

{if£¨T->lchild£©r=T->lchild->size+1£»else r=1£»//¸ù½áµãµÄÖÐÐòÐòºÅ while£¨T£©

if£¨T->key>x->key£©//µ½×ó×ÓÊ÷È¥²éÕÒ {T=T->lchild£»

if£¨T£©{if£¨T->rchild£©r=r-T->rchild->size-1£»else r=r-1£»} }

else if£¨T->keykey£©//µ½ÓÒ×ÓÊ÷È¥²éÕÒ {T=T->rchild;

if£¨T£©{if£¨T->lchild£©r=r+T->lchild->size+1£»else r=r+1£»}

}

else return £¨r£©£»//·µ»Ø*x½áµãµÄÖÐÐòÐòºÅ

return £¨0£©£» //TÊ÷ÉÏÎÞx½áµã¡£

ËÑË÷¸ü¶à¹ØÓÚ£º ÑÏεÃô-Êý¾Ý½á¹¹¼¯ºÏϰÌâ µÄÎĵµ
ÑÏεÃô-Êý¾Ý½á¹¹¼¯ºÏϰÌâ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c2nlxn0do4o6m3qp9y5th_12.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top