Êý¾Ý½á¹¹Ì⼯£¨CÓïÑ԰棩´ð°¸ - ÑÏεÃô±àÖø ÏÂÔØ±¾ÎÄ

if(j=1){

q->next=lb; lb=p; } else{

s=lb; k=1; while(s&&knext; k++; }

if(!s)return INFEASIBLE; q->next=s->next;

s->next=p; //Íê³É²åÈë }

return OK; }

2.17 ÊÔдһËã·¨

ÔÚÎÞÍ·½áµãµÄ¶¯Ì¬µ¥Á´±íÉÏʵÏÖÏßÐÔ±í²Ù×÷Insert(L i b)

²¢ºÍÔÚ´øÍ·½áµãµÄ¶¯Ì¬µ¥Á´±íÉÏʵÏÖÏàͬ²Ù×÷µÄËã·¨½øÐбȽÏ

2.18ÊÔдһËã·¨

ʵÏÖÏßÐÔ±í²Ù×÷Delete(L i)

²¢ºÍÔÚ´øÍ·½áµãµÄ¶¯Ì¬µ¥Á´±íÉÏʵÏÖÏàͬ²Ù×÷µÄËã·¨½øÐбȽÏ

2.19 ÒÑÖªÏßÐÔ±íÖеÄÔªËØÒÔÖµµÝÔöÓÐÐòÅÅÁÐ ²¢ÒÔµ¥Á´±í×÷´æ´¢½á¹¹ ÊÔдһ¸ßЧµÄËã·¨

ɾ³ý±íÖÐËùÓÐÖµ´óÓÚminkÇÒСÓÚmaxkµÄÔªËØ£¨Èô±íÖдæÔÚÕâÑùµÄÔªËØ£© ͬʱÊͷű»É¾½áµã¿Õ¼ä

²¢·ÖÎöÄãµÄËã·¨µÄʱ¼ä¸´ÔÓ¶È£¨×¢Òâ minkºÍmaxkÊǸø¶¨µÄÁ½¸ö²Î±äÁ¿ ËüÃǵÄÖµ¿ÉÒԺͱíÖеÄÔªËØÏàͬ Ò²¿ÉÒÔ²»Í¬£©

½â£º

Status ListDelete_L(LinkList &L ElemType mink ElemType maxk) {

LinkList p q

prev=NULL;

if(mink>maxk)return ERROR; p=L; prev=p; p=p->next;

while(p&&p->datadata<=mink){ prev=p; p=p->next; } else{

prev->next=p->next; q=p;

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

return OK; }

2.20 ͬ2.19ÌâÌõ¼þ ÊÔдһ¸ßЧµÄËã·¨

ɾ³ý±íÖÐËùÓÐÖµÏàͬµÄ¶àÓàÔªËØ£¨Ê¹µÃ²Ù×÷ºóµÄÏßÐÔ±íÖÐËùÓÐÔªËØµÄÖµ¾ù²»Ïàͬ£© ͬʱÊͷű»É¾½áµã¿Õ¼ä

²¢·ÖÎöÄãµÄËã·¨µÄʱ¼ä¸´ÔÓ¶È

½â£º

void ListDelete_LSameNode(LinkList &L) {

LinkList p q prev; p=L; prev=p; p=p->next; while(p){ prev=p; p=p->next;

if(p&&p->data==prev->data){ prev->next=p->next; q=p;

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

}

2.21 ÊÔдһËã·¨

ʵÏÖ˳Ðò±íµÄ¾ÍµØÄæÖÃ

¼´ÀûÓÃÔ­±íµÄ´æ´¢¿Õ¼ä½«ÏßÐÔ±íÄæÖÃΪ

½â£º

// ˳Ðò±íµÄÄæÖÃ

Status ListOppose_Sq(SqList &L) {

int i;

ElemType x;

for(i=0;i

L.elem[i]=L.elem[L.length-1-i]; L.elem[L.length-1-i]=x; }

return OK; }

2.22 ÊÔдһËã·¨

¶Ôµ¥Á´±íʵÏ־͵ØÄæÖÃ

½â£º

// ´øÍ·½áµãµÄµ¥Á´±íµÄÄæÖÃ

Status ListOppose_L(LinkList &L) {

LinkList p q;

p=L;

p=p->next; L->next=NULL; while(p){ q=p;

p=p->next;

q->next=L->next; L->next=q; }

return OK; }

2.23 ÉèÏßÐÔ±í

ÊÔдһ¸ö°´ÏÂÁйæÔòºÏ²¢A BΪÏßÐÔ±íCµÄËã·¨ ¼´Ê¹µÃ

µ±Ê±£»

µ±Ê±

ÏßÐÔ±íA

BºÍC¾ùÒÔµ¥Á´±í×÷´æ´¢½á¹¹

ÇÒC±íÀûÓÃA±íºÍB±íÖеĽáµã¿Õ¼ä¹¹³É ×¢Ò⣺µ¥Á´±íµÄ³¤¶ÈÖµmºÍn¾ùδÏÔʽ´æ´¢

½â£º

// ½«ºÏ²¢ºóµÄ½á¹û·ÅÔÚC±íÖÐ ²¢É¾³ýB±í

Status ListMerge_L(LinkList &A LinkList &B LinkList &C) {

LinkList pa pb qa qb;

pa=A->next; pb=B->next; C=A;

while(pa&&pb){

qa=pa; qb=pb;

pa=pa->next; pb=pb->next; qb->next=qa->next; qa->next=qb; }

if(!pa)qb->next=pb; pb=B; free(pb); return OK; }

2.24 ¼ÙÉèÓÐÁ½¸ö°´ÔªËØÖµµÝÔöÓÐÐòÅÅÁеÄÏßÐÔ±íAºÍB ¾ùÒÔµ¥Á´±í×÷´æ´¢½á¹¹

Çë±àдËã·¨½«A±íºÍB±í¹é²¢³ÉÒ»¸ö°´ÔªËØÖµµÝ¼õÓÐÐò£¨¼´·ÇµÝÔöÓÐÐò ÔÊÐí±íÖк¬ÓÐÖµÏàͬµÄÔªËØ£©ÅÅÁеÄÏßÐÔ±íC

²¢ÒªÇóÀûÓÃÔ­±í£¨¼´A±íºÍB±í£©µÄ½áµã¿Õ¼ä¹¹ÔìC±í

½â£º

// ½«ºÏ²¢ÄæÖúóµÄ½á¹û·ÅÔÚC±íÖÐ ²¢É¾³ýB±í

Status ListMergeOppose_L(LinkList &A LinkList &B LinkList &C)