Êý¾Ý½á¹¹¸÷ÕÂϰÌâ¼°´ð°¸£¡£¡ ÏÂÔØ±¾ÎÄ

}

2. ÔÚµ¥Á´±íÉÏʵÏÖÏßÐÔ±íµÄÇó±í³¤ListLength(L)ÔËËã¡£

2£®ÓÉÓÚÔÚµ¥Á´±íÖÐÖ»¸ø³öÒ»¸öÍ·Ö¸Õ룬ËùÒÔÖ»ÄÜÓñéÀúµÄ·½·¨À´Êýµ¥Á´±íÖеĽáµã¸öÊýÁË¡£Ëã·¨ÃèÊöÈçÏ£º

int ListLength ( LinkList *L ) { //Çó´øÍ·½áµãµÄµ¥Á´±íµÄ±í³¤ int len=0; ListList *p; p=L;

while ( p->next!=NULL ) { p=p->next; len++; }

return (len); }

3. Éè¼Æ½«´ø±íÍ·µÄÁ´±íÄæÖÃËã·¨¡£

3£®É赥ѭ»·Á´±íµÄÍ·Ö¸ÕëΪhead£¬ÀàÐÍΪLinkList¡£ÄæÖÃʱÐ轫ÿһ¸ö½áµãµÄÖ¸ÕëÓò×÷ÒÔÐ޸ģ¬Ê¹ÆäԭǰÇ÷½áµã³ÉΪºó¼Ì¡£ÈçÒª¸ü¸Äq½áµãµÄÖ¸ÕëÓòʱ£¬ÉèsÖ¸ÏòÆäԭǰÇ÷½áµã£¬pÖ¸ÏòÆäÔ­ºó¼Ì½áµã£¬ÔòÖ»Ðè½øÐÐq->next=s;²Ù×÷¼´¿É£¬Ëã·¨ÃèÊöÈçÏ£º

void invert(LinkList *head)

{ //ÄæÖÃheadÖ¸ÕëËùÖ¸ÏòµÄµ¥Ñ­»·Á´±í linklist *p, *q, *s; q=head; p=head->next;

while (p!=head) //µ±±í²»Îª¿Õʱ£¬Öð¸ö½áµãÄæÖà { s=q; q=p; p=p->next; q->next=s; } p->next=q; }

4. ¼ÙÉèÓÐÒ»¸ö´ø±íÍ·½áµãµÄÁ´±í£¬±íÍ·Ö¸ÕëΪhead£¬Ã¿¸ö½áµãº¬Èý¸öÓò£ºdata, nextºÍprior¡£ÆäÖÐdataΪÕûÐÍÊýÓò£¬nextºÍprior¾ùΪָÕëÓò¡£ÏÖÔÚËùÓнáµãÒѾ­ÓÉnextÓòÁ¬½ÓÆðÀ´£¬ÊÔ±àÒ»¸öËã·¨£¬ÀûÓÃpriorÓò£¨´ËÓò³õֵΪNULL£©°ÑËùÓнáµã°´ÕÕÆäÖµ´ÓСµ½´óµÄ˳ÐòÁ´½ÓÆðÀ´¡£

4£®¶¨ÒåÀàÐÍLinkListÈçÏ£º

typedef struct node { int data;

struct node *next,*prior;

}LinkList;

´ËÌâ¿É²ÉÓòåÈëÅÅÐòµÄ·½·¨£¬ÉèpÖ¸Ïò´ý²åÈëµÄ½áµã£¬ÓÃqËÑË÷ÒÑÓÉpriorÓòÁ´½ÓµÄÓÐÐò±íÕÒµ½ºÏÊÊλÖý«p½áµãÁ´Èë¡£Ëã·¨ÃèÊöÈçÏ£º

insert (LinkList *head) { LinkList *p,*s,*q;

p=head->next; //pÖ¸Ïò´ý²åÈëµÄ½áµã£¬³õʼʱָÏòµÚÒ»¸ö½áµã while(p!=NULL)

{ s=head; // sÖ¸Ïòq½áµãµÄǰÇ÷½áµã

q=head->prior; //qÖ¸ÏòÓÉpriorÓò¹¹³ÉµÄÁ´±íÖдý±È½ÏµÄ½áµã

while((q!=NULL) && (p->data>q->data)) //²éÕÒ²åÈë½áµãpµÄºÏÊʵIJåÈëλÖÃ

{ s=q;

q=q->prior; } s->prior=p;

p->prior=q; //½áµãp²åÈëµ½½áµãsºÍ½áµãqÖ®¼ä p=p->next;

} }

5. ÒÑÖªÏßÐÔ±íµÄÔªËØ°´µÝÔö˳ÐòÅÅÁУ¬²¢ÒÔ´øÍ·½áµãµÄµ¥Á´±í×÷´æ´¢½á¹¹¡£ÊÔ±àдһ¸öɾ³ý±íÖÐËùÓÐÖµ´óÓÚminÇÒСÓÚmaxµÄÔªËØ£¨Èô±íÖдæÔÚÕâÑùµÄÔªËØ£©µÄËã·¨¡£

5£®Ëã·¨ÃèÊöÈçÏ£º

delete(LinkList *head, int max, int min) { linklist *p, *q; if (head!=NULL) { q=head; p=head->next;

while((p!=NULL) && (p->data<=min)) { q=p;

p=p->next; }

while((p!=NULL) && (p->datanext; q->next=p;

} }

6. ÒÑÖªÏßÐÔ±íµÄÔªËØÊÇÎÞÐòµÄ£¬ÇÒÒÔ´øÍ·½áµãµÄµ¥Á´±í×÷Ϊ´æ´¢½á¹¹¡£Éè¼ÆÒ»¸öɾ³ý±íÖÐËùÓÐֵСÓÚmaxµ«´óÓÚminµÄÔªËØµÄËã·¨¡£

6£®Ëã·¨ÃèÊöÈçÏ£º

delete(LinkList *head, int max, int min) { LinkList *p,*q; q=head; p=head->next;

while (p!=NULL)

if((p->data<=min) || (p->data>=max)) { q=p; p=p->next; }

else

{ q->next=p->next;

free(p); p=q->next; } }

7. ¼Ù¶¨ÓÃÒ»¸öµ¥Ñ­»·Á´±íÀ´±íʾ¶ÓÁУ¨Ò²³ÆÎªÑ­»·¶ÓÁУ©£¬¸Ã¶ÓÁÐÖ»ÉèÒ»¸ö¶ÓβָÕ룬²»Éè¶ÓÊ×Ö¸Õ룬ÊÔ±àдÏÂÁи÷ÖÖÔËËãµÄËã·¨£º

£¨1£©ÏòÑ­»·Á´¶ÓÁвåÈëÒ»¸öÔªËØÖµÎªxµÄ½áµã£» £¨2£©´ÓÑ­»·Á´¶ÓÁÐÖÐɾ³ýÒ»¸ö½áµã¡£

7£®±¾ÌâÊǶÔÒ»¸öÑ­»·Á´¶ÓÁÐ×ö²åÈëºÍɾ³ýÔËË㣬¼ÙÉè²»ÐèÒª±£Áô±»É¾½áµãµÄÖµºÍ²»ÐèÒª»ØÊÕ½áµã£¬Ëã·¨ÃèÊöÈçÏ£º

£¨1£©²åÈ루¼´Èë¶Ó£©Ëã·¨£º

insert(LinkList *rear, elemtype x)

{ //ÉèÑ­»·Á´¶ÓÁеĶÓβָÕëΪrear,xΪ´ý²åÈëµÄÔªËØ LinkList *p;

p=(LinkList *)malloc(sizeof(LinkList));

if(rear= =NULL) //ÈçΪ¿Õ¶Ó£¬½¨Á¢Ñ­»·Á´¶ÓÁеĵÚÒ»¸ö½áµã { rear=p;

rear->next=p; //Á´½Ó³ÉÑ­»·Á´±í }

else //·ñÔòÔÚ¶Óβ²åÈëp½áµã { p->next=rear->next;

rear->next=p; rear=p; } }

£¨2£©É¾³ý£¨¼´³ö¶Ó£©Ëã·¨£º

delete(LinkList *rear)

{ //ÉèÑ­»·Á´¶ÓÁеĶÓβָÕëΪrear if (rear= =NULL) //¿Õ¶Ó printf(\

if(rear->next= =rear) //¶ÓÖÐÖ»ÓÐÒ»¸ö½áµã rear=NULL; else

rear->next=rear->next->next; //rear->nextÖ¸ÏòµÄ½áµãΪѭ»·Á´¶ÓÁеĶÓÍ·½áµã }

8. Éè˳Ðò±íLÊÇÒ»¸öµÝ¼õÓÐÐò±í£¬ÊÔдһËã·¨£¬½«x²åÈëÆäºóÈÔ±£³ÖLµÄÓÐÐòÐÔ¡£ 8£®Ö»Òª´ÓÖն˽áµã¿ªÊ¼ÍùǰÕÒµ½µÚÒ»¸ö±Èx´ó(»òÏàµÈ)µÄ½áµãÊý¾Ý£¬ÔÚÕâ¸öλÖòåÈë¾Í¿ÉÒÔÁË¡£Ëã·¨ÃèÊöÈçÏ£º

int InsertDecreaseList( SqList *L, elemtype x ) { int i;

if ( (*L).len>= maxlen) { printf(¡°overflow\ return(0); }

for ( i=(*L).len ; i>0 && (*L).elem[ i-1 ] < x ; i--) (*L).elem[ i ]=(*L).elem[ i-1 ] ; // ±È½Ï²¢Òƶ¯ÔªËØ (*L).elem[ i ] =x; (*L).len++; return(1); }