一元多项式加法的链表实现
作者:Duder
1.要求
使用链表实现一元多项式加法
并使用已有链表返回运算结果
2.算法分析
1.幂次有序算法
//一元多项式求和
void SumList(SList* &A,SList* B)
{
SList *m,*n,*t;
if(GetLine(A) > GetLine(B) )
{m=A;n=B;}
else
{m=B;n=A;}
//OutPut(m);OutPut(n);
t = m->next;
while(m->next != NULL && n->next != NULL)
{
if(m->next->exp == n->next->exp)
{
m->next->coef = m->next->coef + n->next->coef;
m = m->next;n = n->next;
}
else if(m->next->exp < n->next->exp )
{
m=m->next;
}
else if(m->next->exp > n->next->exp)
{
n=n->next;
Insert(m,n);
}
}
while(n != NULL)
{
m->next = n->next;
m = m->next;
n = n->next;
}
A->next= t;
}
输入函数A:
f(x)=1+2x1+3x3+4x5 f(x) = 1+ 2x^1 + 3x^3 + 4x^5 f(x)=1+2x1+3x3