}
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->data
} }
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); }