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