线性表定义及基本操作

已知一元多项式A和B,键盘分别输入系数和指数,编写算法实现两个多项式合并操作。使用链表结构并测试下列数据:
A=1+x2-3.2x3
B=2x+3x2+3.2x3

皇家工科院?

核心代码:
void MergeTerm(Term* La, Term* Lb, Term* Lc) {
Term* pa = La->next;
Term* pb = Lb->next;
Term* pc = Lc;
while (pa && pb) {
if (pa->expn < pb->expn) {
pc->next = pa;
pc = pa;
pa = pa->next;
}
else if ((pa->expn == pb->expn) && (pa->coef + pb->coef != 0)) {
pa->coef = pa->coef + pb->coef;
pc->next = pa;
pc = pa;
pa = pa->next;
pb = pb->next;
}
else if ((pa->expn == pb->expn) && (pa->coef + pb->coef == 0)) {
pa = pa->next;
pb = pb->next;
}
else if (pa->expn > pb->expn) {
pc->next = pb;
pc = pb;
pb = pb->next;
}
}
pc->next = pa ? pa : pb;
}