给定两个多项式:
A(x)=a0+a1x+a2x2+…+anxn
B(x)=b0+b1x+b2x2+…+bmxm
计算C(x) = A(x) + B(x)。
多项式以链表形式存储(含头结点),其结点(Node类型)包含三个域,分别为系数、指数和指针域:
coef exp next
题目部分代码已经完成,您只需要补充并提交以下函数:
Node* Add(Node* A, Node* B);//其中A和B为A(x)和B(x)的链表头指针,返回值为C(x)的链表头指针
输入
第一行为多项式A(x),格式为a0+a1x1+a2x2+…+anxn
第二行为多项式B(x),格式为b0+b1x1+b2x2+…+bmxm
其中多项式的系数若为0,则不出现在多项式中。
若系数为负,系数前的“+”不出现。
输出
输出多项式C(x),格式c0+c1x1+c2x2+…+ckxk
其中若多项式的系数为0,则不出现在多项式中。
若系数为负,系数前的“+”不出现。
样例输入
7+2x1+5x3+4x9+6x11
4x1+1x2-5x3+2x4
样例输出
7+6x1+1x2+2x4+4x9+6x11
代码解析如下
Node* Add(Node* A,Node* B)
{
Node *c,*p,*q;
c=(Node*)malloc(sizeof(Node));
c->next=NULL;
p=c;
while(A->next!=NULL&&B->next!=NULL)
{
if(A->next->exp