C++ 多项式相减算法:带头节点单链表实现
void polySub(PolyList LA, PolyList LB, PolyList LC) { PolyNode *pa = LA->next, *pb = LB->next, *pc = LC; while (pa && pb) { if (pa->exp > pb->exp) { pc->next = new PolyNode(pa->coef, pa->exp); pa = pa->next; } else if (pa->exp < pb->exp) { pc->next = new PolyNode(-pb->coef, pb->exp); pb = pb->next; } else { int coef = pa->coef - pb->coef; if (coef != 0) { pc->next = new PolyNode(coef, pa->exp); } pa = pa->next; pb = pb->next; } pc = pc->next; } while (pa) { pc->next = new PolyNode(pa->coef, pa->exp); pa = pa->next; pc = pc->next; } while (pb) { pc->next = new PolyNode(-pb->coef, pb->exp); pb = pb->next; pc = pc->next; } }
原文地址: https://www.cveoy.top/t/topic/ntK8 著作权归作者所有。请勿转载和采集!