C语言单链表实现多项式相减算法
void polySub(PolyList LA, PolyList LB, PolyList LC) { PolyNode *pa = LA->next; PolyNode *pb = LB->next; PolyNode *pc = LC; while (pa && pb) { if (pa->exp == pb->exp) { double diff = pa->coef - pb->coef; if (diff != 0) { PolyNode node = (PolyNode)malloc(sizeof(PolyNode)); node->coef = diff; node->exp = pa->exp; pc->next = node; pc = node; } pa = pa->next; pb = pb->next; } else if (pa->exp > pb->exp) { PolyNode node = (PolyNode)malloc(sizeof(PolyNode)); node->coef = pa->coef; node->exp = pa->exp; pc->next = node; pc = node; pa = pa->next; } else { PolyNode node = (PolyNode)malloc(sizeof(PolyNode)); node->coef = -pb->coef; node->exp = pb->exp; pc->next = node; pc = node; pb = pb->next; } } while (pa) { PolyNode node = (PolyNode)malloc(sizeof(PolyNode)); node->coef = pa->coef; node->exp = pa->exp; pc->next = node; pc = node; pa = pa->next; } while (pb) { PolyNode node = (PolyNode)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/ntK4 著作权归作者所有。请勿转载和采集!