C语言单链表实现多项式相减 - polySub 函数详解
void polySub(PolyList LA, PolyList LB, PolyList LC){ PolyNode *pa = LA->next, *pb = LB->next; PolyNode *pc = LC; // pc指向LC的头结点 while(pa && pb){ if(pa->exp == pb->exp){ if(pa->coef - pb->coef != 0){ PolyNode temp = (PolyNode)malloc(sizeof(PolyNode)); temp->coef = pa->coef - pb->coef; temp->exp = pa->exp; pc->next = temp; pc = pc->next; } pa = pa->next; pb = pb->next; } else if(pa->exp > pb->exp){ PolyNode temp = (PolyNode)malloc(sizeof(PolyNode)); temp->coef = pa->coef; temp->exp = pa->exp; pc->next = temp; pc = pc->next; pa = pa->next; } else{ PolyNode temp = (PolyNode)malloc(sizeof(PolyNode)); temp->coef = -pb->coef; temp->exp = pb->exp; pc->next = temp; pc = pc->next; pb = pb->next; } } while(pa){ PolyNode temp = (PolyNode)malloc(sizeof(PolyNode)); temp->coef = pa->coef; temp->exp = pa->exp; pc->next = temp; pc = pc->next; pa = pa->next; } while(pb){ PolyNode temp = (PolyNode)malloc(sizeof(PolyNode)); temp->coef = -pb->coef; temp->exp = pb->exp; pc->next = temp; pc = pc->next; pb = pb->next; } }
原文地址: https://www.cveoy.top/t/topic/ntMi 著作权归作者所有。请勿转载和采集!