struct Polynomial{
int coef;
int expon;
Polynomial* next;
Polynomial(int x,int y): coef(x),expon(y),next(NULL){}
}
Polynomial* p1;
Polynomial* p2;
Polynomial* PolyAdd(Polynomial* p1,Polynomial* p2)
{
int sum;
Polynomial* rear = new Polynomial(0,0);//创建一个新结点
Polynomial* front=rear;
while(p1 && p2)
switch(Compare(p1->expon,p2->expon)){
case 1:
rear->next= new Polynomial(p1->coef,p1->expon);
rear = rear->next;
p1 = p1->next;
break;
case -1:
rear->next= new Polynomial(p2->coef,p2->expon);
rear = rear->next;
p2 = p2->next;
break;
case 0:
sum=p1->coef + p2->coef;
if(sum) rear->next = new Polynomial(sum,p1->expon);
rear = rear->next;
p1 = p1->next;
p2 = p2->next;
break;
}
if(!p1) rear->next = p2;
if(!p2) rear->next = p1;
return front->next;
两个多项式相加(c++实现)
最新推荐文章于 2023-12-25 21:41:24 发布