ºÃÎĵµ - רҵÎÄÊéд×÷·¶ÎÄ·þÎñ×ÊÁÏ·ÖÏíÍøÕ¾

Êý¾Ý½á¹¹ÊµÓý̳Ì(µÚÈý°æ)¿Îºó´ð°¸

ÓÉ ÌìÏ ·ÖÏí ʱ¼ä£º ¼ÓÈëÊÕ²Ø ÎÒҪͶ¸å µãÔÞ

¢Ì ¸ù¾ÝÁ½¸öÓÐÐòµ¥Á´±íÉú³ÉÒ»¸öеÄÓÐÐòµ¥Á´±í£¬Ô­Óе¥Á´±í±£³Ö²»±ä¡£Èç¼Ù¶¨Á½¸öÓÐÐòµ¥Á´

±íÖеÄÔªËØΪ(2,8,10,20)ºÍ(3,8,9,15,16)£¬ÔòÉú³ÉµÄе¥Á´±íÖеÄÔªËØΪ(2,3,8,8,9,10,15, 16,20)¡£

½â£ºLNode*Merge2(LNode*p1,LNode*p2)

//¸ù¾ÝÁ½¸öÓÐÐòµ¥Á´±íÉú³ÉÒ»¸öеÄÓÐÐòµ¥Á´±í {

LNode a; //ÓÃa×÷ΪеÄÓÐÐòµ¥Á´±íµÄ±íÍ·¸½¼Ó½áµã LNode*p=&a; //p p->next=NULL; // while((p1!=NULL&&(p2!=NULL)) { // LNode*newptr=new LNode; if(p1->datadata)

{ // newptr->data=p1->data; p1=p1->next; } else

{ // newptr->data=p2->data; p2=p2->next; }

// p->next=newptr; p=newptr; }

while(p1!=NULL)

{ // LNode*newptr=new LNode; newptr->data=p1->data; p1=p1->next; p->next=newptr; p=newptr; }

while(p2!=NULL)

{ // LNode*newptr=new LNode; newptr->data=p2->data; p2=p2->next; p->next=newptr; p=newptr; }

. . Ö¸Ïò½á¹ûÓÐÐòµ¥Á´±íµÄ±íβ½áµã ³õʼָÏò±íÍ·¸½¼Ó½áµã ´¦ÀíÁ½¸ö±í·Ç¿ÕʱµÄÇé¿ö ÓÉp1->data½¨Á¢Ð½áµã£¬È»ºóp1Ö¸ÕëºóÒÆ ÓÉp2->data½¨Á¢Ð½áµã£¬È»ºóp2Ö¸ÕëºóÒÆ ½«newptr½áµã²åÈëµ½½á¹ûµÄÓÐÐò±íµÄ±íβ ¼ÌÐø´¦Àíp1µ¥Á´±íÖÐÊ£ÓàµÄ½áµã ¼ÌÐø´¦Àíp2µ¥Á´±íÖÐÊ£ÓàµÄ½áµã .

p->next=NULL;

file:///D|/-------------------ÉϼÜÉÌÆ·-----... (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt£¨µÚ 10£¯21 Ò³£©[2010-3-16 22:06:59]

file:///D|/-------------------ÉϼÜÉÌÆ·---------------/Êý¾Ý½á¹¹ÊµÓÃ½Ì³Ì (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt return a.next; }

¢Í ¸ù¾ÝÒ»¸öÔªËØÀàÐÍΪÕûÐ͵ĵ¥Á´±íÉú³ÉÁ½¸öµ¥Á´±í£¬Ê¹µÃµÚÒ»¸öµ¥Á´±íÖаüº¬Ô­µ¥Á´±íÖÐËùÓÐ

ÔªËØֵΪÆæÊýµÄ½áµã£¬Ê¹µÃµÚ¶þ¸öµ¥Á´±íÖаüº¬Ô­µ¥Á´±íÖÐËùÓÐÔªËØֵΪżÊýµÄ½áµã¡£Ô­Óе¥Á´±í ±£³Ö²»±ä¡£

½â£ºvoid Separate(LNode*HL,LNode*&p1,LNode*&p2)

//¸ù¾ÝÒ»¸öµ¥Á´±íHL°´Ìõ¼þ²ð·ÖÉú³ÉÁ½¸öµ¥Á´±íp1ºÍp2 {

LNode a,b; //aºÍb½áµã·Ö±ð×÷Ϊp1ºÍp2µ¥Á´±íµÄ±íÍ·¸½¼Ó½áµã LNode*t1=&a,*t2=&b; //t1ºÍt2·Ö±ð×÷ΪָÏòp1ºÍp2µ¥Á´±íµÄ //±íβ½áµã£¬³õʼָÏò±íÍ·¸½¼Ó½áµã Lnode*p=HL; while(p!=NULL)

{ //ÿѭ»·Ò»´Î²úÉúÒ»¸öнáµã£¬²¢°ÑËü¼ÓÈëµ½p1»òp2µ¥Á´±í //µÄδβ

LNode*newptr=new LNode; if(p->data%2==1){ newptr->data=p->data; t1->next=newptr; t1=newptr; } else{

newptr->data=p->data; t2->next=newptr; t2=newptr; }

p=p->next; }

t1->next=t2->next=NULL;

p1=a.next;p2=b.next; //°ÑÖ¸ÏòÁ½¸öµ¥Á´±íµÄ±íÍ·½áµãµÄÖ¸Õë·Ö±ð¸³¸ø //p1ºÍp2·µ»Ø }

6.±àдһ¸öËã·¨£¬Ê¹ÓñíÍ·¸½¼Ó½áµãµÄÑ­»·µ¥Á´±í½â¾öԼɪ·ò(Josephus)ÎÊÌâ¡£ÆäÎÊÌâÊÇ £ºÉèÓÐn¸öÈËΧ×øÔÚÒ»ÕÅÔ²×ÀÖÜΧ£¬ÏÖ´Óij¸öÈË¿ªÊ¼´Ó1±¨Êý£¬Êýµ½mµÄÈ˳öÁÐ(¼´À뿪×ø룬

. . .

²»²Î¼ÓÒÔºóµÄ±¨Êý)£¬½Ó×Å´Ó³öÁеÄÏÂÒ»¸öÈË¿ªÊ¼ÖØдÓ1±¨Êý£¬Êýµ½mµÄÈËÓÖ³öÁУ¬Èç´ËÏÂ

È¥Ö±µ½ËùÓÐÈ˶¼³öÁÐΪֹ£¬ÊÔÇó³öËüÃǵijöÁдÎÐò¡£

¼ÙÈ磬µ±n=8¡¢m=4ʱ£¬Èô´ÓµÚÒ»¸öÈË(¼Ù¶¨Ã¿¸öÈ˵ıàºÅÒÀ´ÎΪ1,2...,n)¿ªÊ¼±¨Êý£¬ÔòµÃ µ½µÄ³öÁдÎÐòΪ:4,8,5,2,1,3,7,6¡£

´ËËã·¨ÒªÇóÒÔn¡¢mºÍs(¼Ù¶¨´ÓµÚs¸öÈË¿ªÊ¼µÚÒ»´Î±¨Êý)×÷Ϊֵ²Î¡£ ½â£º

void Josephus(int n,int m,int s)

//ʹÓôø±íÍ·¸½¼Ó½áµãµÄÑ­»·µ¥Á´±í½â¾öԼɪ·òÎÊÌâ

file:///D|/-------------------ÉϼÜÉÌÆ·-----... (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt£¨µÚ 11£¯21 Ò³£©[2010-3-16 22:06:59]

file:///D|/-------------------ÉϼÜÉÌÆ·---------------/Êý¾Ý½á¹¹ÊµÓÃ½Ì³Ì (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt {

//Éú³É±íÍ·¸½¼Ó½áµã£¬´Ëʱѭ»·µ¥Á´±íΪ¿Õ LNode*HL=new LNode; HL->next=HL; int i;

//Éú³Éº¬ÓÐn¸ö½áµã¡¢½áµãÒÀ´ÎΪ1,2,...nµÄ´ø±íÍ·½áµãµÄÑ­»·µ¥Á´±í for(i=n;i>=1;i--){ //Éú³ÉеĽáµã

LNode*newptr=new LNode; newptr->data=i;

//°ÑеĽáµã²åÈëµ½±íÍ· newptr->next=HL->next; HL->next=newptr; }

//´Ó±íÍ·¿ªÊ¼Ë³Ðò²éÕÒ³öµÚs¸ö½áµã£¬¶ÔÓ¦µÚÒ»¸ö¿ªÊ¼±¨ÊýµÄÈË LNode*ap=HL,*cp=HL->next; for(i=1;i

//apºÍcpÖ¸ÕëºóÒÆÒ»¸öλÖà ap=cp;

cp=cp->next;

//ÈôcpÖ¸ÏòÁ˱íÍ·¸½¼Ó½áµã£¬ÔòÈÔÐèºóÒÆapºÍcpÖ¸Õ룬ʹָ֮Ïò±íÍ·½áµã if(cp==HL){ap=HL;cp=HL->next;} }

//ÒÀ´Îʹn-1¸öÈ˳öÁÐ for(i=1;i

//˳Ðò²éÕÒ³ö´ý³öÁеÄÈË£¬¼´ÎªÑ­»·½áÊøºócpËùÖ¸ÏòµÄ½áµã for(int j=1;j

cp=cp->next;

if(cp==HL){ap=HL;cp=HL->next;}

. . .

}

//Êä³öcp½áµãµÄÖµ£¬¼´³öÁеÄÈË cout<data<<\ //´Óµ¥Á´±íÖÐɾ³ýcp½áµã ap->next=cp->next; delete cp;

//ʹcpÖ¸Ïò±»É¾³ý½áµãµÄºó¼Ì½áµã cp=ap->next;

//ÈôcpÖ¸ÏòÁ˱íÍ·¸½¼Ó½áµã£¬ÔòºóÒÆapºÍcpÖ¸Õë if(cp==HL){ap=HL;cp=HL->next;} }

//ʹ×îºóÒ»¸öÈ˳öÁÐ

cout<next->data<

file:///D|/-------------------ÉϼÜÉÌÆ·-----... (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt£¨µÚ 12£¯21 Ò³£©[2010-3-16 22:06:59]

file:///D|/-------------------ÉϼÜÉÌÆ·---------------/Êý¾Ý½á¹¹ÊµÓÃ½Ì³Ì (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt delete HL->next; delete HL; }

7.¶ÔÓÚÔÚÏßÐÔ±í³éÏóÊý¾ÝÀàÐÍÖж¨ÒåµÄÿһ¸ö²Ù×÷£¬Ð´³ö½áµãÀàÐÍΪLNodeµÄ´øÍ·¸½¼Ó½áµã µÄÑ­»·µ¥Á´±íÉÏʵÏֵĶÔÓ¦Ëã·¨¡£ ¢Å³õʼ»¯µ¥Á´±í

½â£ºvoid InitList(LNode*HL) {

HL->next=HL;//½«µ¥Á´±íÖÃ¿Õ }

¢Æɾ³ýµ¥Á´±íÖеÄËùÓнáµã£¬Ê¹Ö®³ÉΪһ¸ö¿Õ±í void ClearList(LNode*HL) {

LNode*cp,*np;

cp=HL->next;//½«Ö¸ÏòµÚÒ»¸ö½áµãµÄÖ¸Õ븳¸øcp

while(cp!=HL)//±éÀúµ¥Á´±í£¬Ïòϵͳ½»»Øÿһ¸ö½áµã¡£ {

np=cp->next;//±£´æÏÂÒ»¸ö½áµãµÄÖ¸Õë¡£ delete cp;//ɾ³ýµ±Ç°½áµã¡£

cp=np;//ʹÏÂÒ»¸ö½áµã³ÉΪµ±Ç°½áµã¡£ }

HL->next=HL;//Öõ¥Á´±íΪ¿Õ }

¢ÇµÃµ½µ¥Á´±íµÄ³¤¶È int ListSize(LNode*HL)

. . .

{

LNode*p=HL->next; int i=0;

while(p!=HL){i++;p=p->next;} return i; }

¢È¼ì²éµ¥Á´±íÊÇ·ñΪ¿Õ int ListEmpty(LNode*hl) {

return(HL->next==HL); }

¢ÉµÃµ½µ¥Á´±íÖеÚpos¸ö½áµãÖеÄÔªËØ ElemType GetElem(LNode*HL,int pos) {

file:///D|/-------------------ÉϼÜÉÌÆ·-----... (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt£¨µÚ 13£¯21 Ò³£©[2010-3-16 22:06:59]

file:///D|/-------------------ÉϼÜÉÌÆ·---------------/Êý¾Ý½á¹¹ÊµÓÃ½Ì³Ì (µÚ¶þ°æ) ¿Îºó´ð°¸ (ÐìТ¿­ Öø) Ç廪´óѧ³ö°æÉç/µÚ¶þÕ ÏßÐÔ±í.txt if(pos<1){

cerr<<\ exit(1); }

LNode* p=HL->next; int i=0;

while(p!=HL){ i++;

if(i==pos)break; p=p->next; }

if(p!=HL)return p->data; else{

cerr<<\ exit(1); } } ¢Ê±éÀúµ¥Á´±í

void TraverseList(LNode*HL) {

LNode* p=HL->next; while(p!=HL){

cout<data<<\ p=p->next; }

. . .

Êý¾Ý½á¹¹ÊµÓý̳Ì(µÚÈý°æ)¿Îºó´ð°¸

¢Ì¸ù¾ÝÁ½¸öÓÐÐòµ¥Á´±íÉú³ÉÒ»¸öеÄÓÐÐòµ¥Á´±í£¬Ô­Óе¥Á´±í±£³Ö²»±ä¡£Èç¼Ù¶¨Á½¸öÓÐÐòµ¥Á´±íÖеÄÔªËØΪ(2,8,10,20)ºÍ(3,8,9,15,16)£¬ÔòÉú³ÉµÄе¥Á´±íÖеÄÔªËØΪ(2,3,8,8,9,10,15,16,20)¡£½â£ºLNode*Merge2(LNode*p1,LNode*p2)//¸ù¾ÝÁ½¸öÓÐÐòµ¥Á´±íÉú³ÉÒ»¸öеÄÓÐÐò
ÍƼö¶È£º
µã»÷ÏÂÔØÎĵµÎĵµÎªdoc¸ñʽ
44twa34kwj1emx02sb8q8qp2012imx011ie
ÁìÈ¡¸£Àû

΢ÐÅɨÂëÁìÈ¡¸£Àû

΢ÐÅɨÂë·ÖÏí