×÷Òµ1-2+ ʵÑé1(6) ÏÂÔر¾ÎÄ

A.elem[i]<->A.elem[j]; }//reverse

4.ÊÔдһËã·¨, ¶Ôµ¥Á´±íʵÏ־͵ØÄæÖᣠµ¥Á´±íÀàÐͶ¨ÒåÈçÏ£º struct LNode{ ElemType data; Struct LNode *next; } LNode *LinkList;

L p q s L p q s L p q s

void LinkList_reverse(Linklist &L)//Á´±íµÄ¾ÍµØÄæÖÃ;Ϊ¼ò»¯Ëã·¨,¼ÙÉè±í³¤´óÓÚ2 {

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

q->next=p;

p=q;q=s;s=s->next; //°ÑLµÄÔªËØÖð¸ö²åÈëбí±íÍ· }

q->next=p;s->next=q;L->next=s; }//LinkList_reverse

·ÖÎö:±¾Ëã·¨µÄ˼ÏëÊÇ,Öð¸öµØ°ÑLµÄµ±Ç°ÔªËØq²åÈëеÄÁ´±íÍ·²¿,pΪбí±íÍ·.

5 ¼ÙÉèÒÔÁ½¸öÔªËØÒÀÖµµÝÔöÓÐÐòÅÅÁеÄÏßÐÔ±íA ºÍB ·Ö±ð±íʾÁ½¸ö¼¯ºÏ( ¼´Í¬Ò»±íÖеÄÔªËØÖµ¸÷²»Ïàͬ) , ÏÖÒªÇóÁí±Ù¿Õ¼ä¹¹³ÉÒ»¸öÏßÐÔ±íC, ÆäÔªËØΪA ºÍB ÖÐÔªËصĽ»¼¯, ÇÒ±íC ÖеÄÔªËØÒ²ÒÀÖµµÝÔöÓÐÐòÅÅÁС£ÊÔ¶Ô˳Ðò±í±àдÇóC µÄËã·¨¡£

6. ÒªÇóͬ5Ìâ¡£ÊÔ¶Ôµ¥Á´±í±àдÇóCµÄËã·¨

A B p q p->data = = q->data s µÚÒ»¸ö½ÚµãÓëµÚi¸öÏàͬ

C pc

s

C, pc void LinkList_Intersect(LinkList A,LinkList B,LinkList &C)//ÔÚÁ´±í½á¹¹ÉÏÖØ×öÉÏÌâ {

p=A->next;q=B->next;

pc=(LNode*)malloc(sizeof(LNode)); C=pc;

while(p&&q) {

if(p->datadata) p=p->next; else if(p->data>q->data) q=q->next; else {

s=(LNode*)malloc(sizeof(LNode)); s->data=p->data; pc->next=s; pc=s; p=p->next; q=q->next; }

C=pc; £¿

}//while

}//LinkList_Intersect

5 ½â£º

void SqList_Intersect(SqList A,SqList B,SqList &C)//ÇóÔªËصÝÔöÅÅÁеÄÏßÐÔ±íAºÍBµÄÔªËصĽ»¼¯²¢´æÈëCÖÐ {

i=1;j=1;k=0;

while(A.elem[i]&&B.elem[j]) {

if(A.elem[i]B.elem[j]) j++; if(A.elem[i]==B.elem[j]) {

C.elem[++k]=A.elem[i]; //µ±·¢ÏÖÁËÒ»¸öÔÚA,BÖж¼´æÔÚµÄÔªËØ, i++;j++; //¾ÍÌí¼Óµ½CÖÐ }

}//while

}//SqList_Intersect

7£® ÊÔ±àдËã·¨, ½«Ò»¸öÓÃÑ­»·Á´±í±íʾµÄÏ¡Êè¶àÏîʽ·Ö½â³ÉÁ½¸ö¶àÏîʽ, ʹÕâÁ½¸ö¶àÏîʽÖи÷×Ô½öº¬Ææ´ÎÏî»òż´ÎÏî, ²¢ÒªÇóÀûÓÃÔ­Á´±íÖеĽáµã¿Õ¼äÀ´¹¹³ÉÕâÁ½¸öÁ´±í¡£ struct PolyNode{ PolyTerm data;

Struct PolyNode *next; }PolyLink LinkedPoly;

L p AÆæ´Î pa

B ż´Î pb

L pa AÆæ´Î B ż´Î pb

Èç¹ûÊÇÆæ´Î pa->next=p;pa=p; p=p->next;

p void Divide_LinkedPoly(LinkedPoly &L,&A,&B)//°ÑÑ­»·Á´±í´æ´¢µÄÏ¡Êè¶àÏîʽL²ð³ÉÖ»º¬Ææ´ÎÏîµÄAºÍÖ»º¬Å¼´ÎÏîµÄB {

p=L->next;

A=(PolyNode*)malloc(sizeof(PolyNode)); B=(PolyNode*)malloc(sizeof(PolyNode)); pa=A;pb=B; while(p!=L) {

if(p->data.exp!=2*(p->data.exp/2)) {

pa->next=p;pa=p; } else {

pb->next=p;pb=p;