如何将两个多项式相加
Polyminal AddPolyminal(Polyminal p1,Polyminal p2)
{
int sum;
Polyminal front,rear,temp;
void AddToList(int coef,int expon,Polyminal* PtrRear);
int Compare(int,int);
front=rear=(Polyminal)malloc(sizeof(struct QNode));
while (p1 && p2)
{
switch (Compare(p1->expon,p2->expon))
{
case 1:AddToList(p1->coef,p1->expon,&rear);p1=p1->link;break;
case -1:AddToList(p2->coef,p2->expon,&rear);p2=p2->link;break;
case 0:sum=p1->coef+p2->coef;
if (sum) AddToList(sum,p1->expon,&rear);
p1=p1->link;p2=p2->link;break;
}
}
for (;p1;p1=p1->link) AddToList(p1->coef,p1->expon,&rear);
for (;p2;p2=p2->link) AddToList(p2->coef,p2->expon,&rear);
temp=front;
front=front->link;
free(temp);
return front;
}
int Compare(int a,int b)
{
if (a>b)
return 1;
if (a==b)
return 0;
else
return -1;
}
如何将两个多项式相乘
Polyminal MultiPolyminal(Polyminal p1,Polyminal p2)
{
Polyminal front,rear,temp;
front=rear=(Polyminal)malloc(sizeof(struct QNode));
Polyminal JAVA,PYTHON;
int product_coef,product_expon;
void AddToList(int coef,int expon,Polyminal* PtrRear);
if (!p1 || !p2) return NULL;
for (JAVA=p2;JAVA;JAVA=JAVA->link)
{
for (PYTHON=p1;PYTHON;PYTHON=PYTHON->link)
{
product_coef=(JAVA->coef)*(PYTHON->coef);
product_expon=(JAVA->expon)+(PYTHON->expon);
AddToList(product_coef,product_expon,&rear);
}
}
temp=front;
front=front->link;
free(temp);
return front;
}