ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

³£¼ûÃæÊÔÌâÖ®Á´±í²Ù×÷(Ò»)
2014-11-24 01:40:45 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:414´Î
Tags£º¼ûÃæ ÊÔÌâ ²Ù×÷

Á´±íÊÇÊý¾Ý½á¹¹µÄÖØÒªÄÚÈÝ£¬ÔÚ¼ÆËã»ú³ÌÐòÖÐÓ¦Óù㷺£¬Í¬Ê±Ò²ÊǸ÷¹«Ë¾±ÊÊÔÌâÄ¿µÄÖص㡣


¡¡¡¡ÒÔϼòµ¥ÊµÏÖÁËÁ´±íµÄһЩ²Ù×÷£¬°üÀ¨´´½¨¡¢Ôö¼Ó½Úµã¡¢É¾³ý½Úµã¡¢µ¥Á´±íÄæÖᢺϲ¢ÓÐÐòÁ´±íµÈ¡£


Ò»¡¢Á´±í´´½¨


¡¡¡¡Á´±íÖ÷ÒªÓÐÈýÖÖÐÎʽ£¬°üÀ¨µ¥Á´±í¡¢Ë«Á´±íºÍÑ­»·Á´±í¡£


¡¡¡¡µ¥Á´±íÿ¸ö½ÚµãÖ»°üº¬Ò»¸öºóÇýÖ¸Õ룬˫Á´±í½Úµãͬʱ°üº¬Ò»¸öÇ°ÇýÖ¸ÕëºÍÒ»¸öºóÇýÖ¸Õ룬ѭ»·Á´±íµÄβ½ÚµãµÄºóÇýÖ¸ÏòÍ·½Úµã¡£


¡¡¡¡´úÂëÈçÏ£º


/*µ¥Á´±í½Úµã½á¹¹*/
typedef struct NodeType
{
char elem;
NodeType*next;
}Node;


/*Ë«Á´±í½Úµã½á¹¹*/
typedef struct DNodeType
{
char elem;
DNodeType*next;
DNodeType*prev;
}DNode;


/*
´´½¨Á´±í
*/
Node* CreateList(Node*head)
{
if(NULL== head)//·ÖÅäÍ·½Úµã¿Õ¼ä
head=(Node*)malloc(sizeof(Node)),
head->next=NULL;


Node*current=head ,*temp;
char ch;


while(1)
{
cout<<¡±\n input elem:¡±;
cin>>ch;
if(¡®#¡¯ == ch)/*#½áÊøÊäÈë*/
break;
temp=(Node*) malloc (sizeof(Node) );
temp->elem=ch;
temp->next=NULL;
current->next=temp;/*µ±Ç°½ÚµãµÄºóÇýÖ¸Ïòнڵã*/
current=temp;/*µ±Ç°½ÚµãΪÁ´±íβ½Úµã*/


}


return head;
}



/*´´½¨Ë«Á´±í*/
DNode* DoubleList(DNode*head)
{
if(NULL== head)//·ÖÅäÍ·½Úµã¿Õ¼ä
head=(DNode*)malloc(sizeof(DNode)) , head->prev=NULL , head->next=NULL;


DNode*current=head ,*temp;
char ch;


while(1)
{
cout<<¡±\n input elem:¡±;
cin>>ch;
if(¡®#¡¯ == ch)/*#½áÊøÊäÈë*/
break;
temp=(DNode*) malloc (sizeof(DNode) );
temp->elem=ch;
temp->next=NULL;
current->next=temp;/*µ±Ç°½ÚµãµÄºóÇýÖ¸Ïòнڵã*/
temp->prev=current;/*нڵãµÄÇ°ÇýÖ¸Ïòµ±Ç°½Úµã*/
current=temp;/*µ±Ç°½ÚµãΪÁ´±íβ½Úµã*/


}


return head;
}



/*´´½¨Ñ­»·Á´±í*/
Node* CycleList(Node*head)
{
if(NULL== head)/*·ÖÅäÍ·½Úµã¿Õ¼ä*/
head=(Node*)malloc(sizeof(Node)),head->next=NULL;


Node*current=head ,*temp;
char ch;


while(1)
{
cout<<¡±\n input elem:¡±;
cin>>ch;
if(¡®#¡¯ == ch)/*#½áÊøÊäÈë*/
break;
temp=(Node*) malloc (sizeof(Node) );
temp->elem=ch;
temp->next=NULL;
current->next=temp;/*µ±Ç°½ÚµãµÄºóÇýÖ¸Ïòнڵã*/
current=temp;/*µ±Ç°½ÚµãΪÁ´±íβ½Úµã*/


}
current->next=head;/*β½ÚµãÖ¸ÏòÍ·½Úµã*/
return head;
}



¶þ¡¢Á´±í²Ù×÷


¡¡¡¡°üÀ¨µ¥Á´±íµÄÔö¼Ó½Úµã¡¢É¾³ý½Úµã¡¢Êä³öÁ´±íµÈ


Ìí¼Ó½Úµã


/*²åÈë½Úµã*/


Node*InsertNode(Node*head ,char elem)
{
if( NULL== head|| NULL== elem )
return head;


Node*current=head->next;/*µ±Ç°½Úµã*/
Node*prev=head;/*Ç°Çý½Úµã*/
Node*temp;/*¹ý¶É½Úµã*/


while(current)/*Òƶ¯ÖÁβ½Úµã*/
{
prev=current;
current=current->next;
}


temp=(Node*) malloc(sizeof(Node) );
temp->elem=elem;
temp->next=NULL;
prev->next=temp;/*β½ÚµãµÄºóÇýÖ¸Ïòнڵã*/


return head;


}


/*
Êä³öÁ´±í
*/
void PrintList(Node*head)
{
Node* current=head->next;
cout<<¡±\n List are:¡±;
while(NULL!= current)
{
if(NULL!= current->elem)
cout<elem;
current=current->next;
}


cout<<¡±\n¡±;
}


Èý¡¢µ¥Á´±íÄæÖÃ


¡¡¡¡µ¥Á´±íÄæÖÃÔÚ¸÷¹«Ë¾µÄ±ÊÊÔÌâÖбȽϳ£¼û£¬ÒÔÏÂÊÇÆäÖÐÒ»ÖÖʵÏÖ¡£


¡¡¡¡Ëã·¨ÃèÊö£º½«Á´±íÖÐÿһ¸ö½Úµã²åÈ뵽ͷ½áµãÖ®ºó¡£


¡¡¡¡´úÂëÈçÏ£º


µ¥Á´±íÄæÖÃ/*µ¥Á´±íÄæÖÃ*/
Node*ReverseList(Node*head)
{
if(NULL== head)
return head;
if(NULL== head->next)
return head;
if(NULL== head->next->next)
return head;


Node*curr=head->next;/*µ±Ç°½Úµã*/
head->next=NULL;
Node*temp;


while(curr)
{
temp=curr->next;/*ÔÝ´æÏÂÒ»¸ö½Úµã*/
/*°Ñµ±Ç°½Úµã²åÈëµ½head½Úµãºó*/
curr->next=head->next;
head->next=curr;


curr=temp;/*Òƶ¯ÖÁÏÂÒ»¸ö½Úµã*/
}


return head;


}


ËÄ¡¢Çóµ¥Á´±íÖмä½Úµã


¡¡¡¡ÔÚ±ÊÊÔÌâÖбȽϳ£¼û£¬Í¨³£ÌâÄ¿ÃèÊöÊÇ£º¸ø³öÒ»¸öµ¥Á´±í£¬²»ÖªµÀ½ÚµãNµÄÖµ£¬ÔõÑùÖ»±éÀúÒ»´Î¾Í¿ÉÒÔÇó³öÖмä½Úµã¡£


¡¡¡¡Ëã·¨ÃèÊö£ºÉèÁ¢Á½¸öÖ¸Õëp1,p2£¬p1ÿ´ÎÒƶ¯1¸ö½ÚµãλÖã¬p2ÿ´ÎÒƶ¯2¸ö½ÚµãλÖ㬵±p2Òƶ¯µ½Î²½Úµãʱ£¬p1Ö¸ÏòÖмä½Úµã¡£


¡¡¡¡´úÂëÈçÏ£º


ÇóÖмä½Úµã


/*ÇóÖмä½Úµã*/
Node* MiddleNode(Node*head)
{
if(NULL== head)
return head;
if(NULL== head->next)
return head->next;


Node*p1,*p2;
p1=head;
p2=head;


while(p2->next)
{
/*p2½ÚµãÒƶ¯2¸ö½ÚµãλÖÃ*/
p2=p2->next;
if(p2->next)/*ÅжÏp2ºóÇý½ÚµãÊÇ·ñ´æÔÚ£¬´æÔÚÔòÔÙÒƶ¯Ò»´Î*/
p2=p2->next;
/*p1½ÚµãÒƶ¯1¸ö½ÚµãλÖÃ*/
p1=p1->next;


}
return p1;


}


Îå¡¢ºÏ²¢ÓÐÐòµ¥Á´±í


¡¡¡¡ÎÊÌâÃèÊö£ººÏ²¢2¸öÓÐÐòµ¥Á´±í£¬ºÏ²¢ºóµÄÁ´±íÒ²ÊÇÅźÃÐòµÄ¡£


¡¡¡¡Ëã·¨ÃèÊö£º¶ÔÁ´±íAÖеÄÿһ¸ö½ÚµãÔªËØ£¬²éÕÒÆäÔÚÁ´±íBÖеIJåÈëλÖ㬲¢ÔÚBÖвåÈë¸ÃÔªËØ¡£


¡¡¡¡´úÂëÈçÏ£º


ºÏ²¢ÓÐÐòµ¥Á´±í/*ºÏ²¢ÓÐÐòµ¥Á´±í*/
Node* MergeList(Node* h1,Node* h2)
{
if(NULL== h1|| NULL== h2)
return h1;
if(NULL== h1->next )
return h2;
if(NULL== h2->next)
return h1;


Node* curr1,*curr2,*prev1,*temp;
prev1=h1;/*Á´±í1µÄÇ°Çý½Úµã*/
curr1=h1->next;/*Á´±í1µÄµ±Ç°½Úµã*/
curr2=h2->next;/*Á´±í2µÄµ±Ç°½Úµã*/
temp=h2;
while(cu

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 ÏÂÒ»Ò³ βҳ 1/3/3
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºJava Web³õ¼¶¿ª·¢¹¤³ÌʦÈëÃż¶±Ê.. ÏÂһƪ£º¹ãÖÝC++/MFCÊÔÌâ

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿