#include<stdio.h>
typedef struct poly
{float coef;
int expn;
struct poly *next;
}polynode
polynode *CreatPoly(poly *P,int m)
{polynode *r;
InitList(P);
h=GetHead(P);
h.coef=0.0;
h.expn=-1;
r=p;
for(i=1;i<=m;++i)
{scanf("%f""%d",&e.coef,&e.expn);
if(LocateElem(P,e)==NULL)
{P->coef=e.coef;
P->expn=e.expn;
P->next=r;}
r=p;
}
return(P);
}
polynode *AddPoly(polynode *Pa,polynode *Pb)
ha=GetHead(Pa);
la=ha;
hb=GetHead(Pb);
lb=hb;
qa=la->next;
qb=lb->next;
while(pa!=NULL&&pb!=NULL)
{
if(qa->expn<qb->expn)
{
la=qa;
qa=qa->next;
}
else if(qa->expn==qb->expn)
{
sum=qa->coef+qb->coef;
if(sum!=0.0)
{qa->coef=sum;
la=qa;qa=qa->next;lb->next=qb->next;free(qb);qb=lb->next;}
else{la->next=qa->next;
free(qa);
qa=la->next;
lb->next=qb->next;
free(qb);
qb=lb->next;}
}
else if(qa->expn>qb->expn)
{
lb->next=qb->next;
la->next=qb;
qb->next=qa;
la=qb;
qb=lb->next;}
}
if(Pb!=NULL)qa->next=qb;
free(lb);
return(Pa);
} 一元多项式的相加 请添个主函数谢谢
typedef struct poly
{float coef;
int expn;
struct poly *next;
}polynode
polynode *CreatPoly(poly *P,int m)
{polynode *r;
InitList(P);
h=GetHead(P);
h.coef=0.0;
h.expn=-1;
r=p;
for(i=1;i<=m;++i)
{scanf("%f""%d",&e.coef,&e.expn);
if(LocateElem(P,e)==NULL)
{P->coef=e.coef;
P->expn=e.expn;
P->next=r;}
r=p;
}
return(P);
}
polynode *AddPoly(polynode *Pa,polynode *Pb)
ha=GetHead(Pa);
la=ha;
hb=GetHead(Pb);
lb=hb;
qa=la->next;
qb=lb->next;
while(pa!=NULL&&pb!=NULL)
{
if(qa->expn<qb->expn)
{
la=qa;
qa=qa->next;
}
else if(qa->expn==qb->expn)
{
sum=qa->coef+qb->coef;
if(sum!=0.0)
{qa->coef=sum;
la=qa;qa=qa->next;lb->next=qb->next;free(qb);qb=lb->next;}
else{la->next=qa->next;
free(qa);
qa=la->next;
lb->next=qb->next;
free(qb);
qb=lb->next;}
}
else if(qa->expn>qb->expn)
{
lb->next=qb->next;
la->next=qb;
qb->next=qa;
la=qb;
qb=lb->next;}
}
if(Pb!=NULL)qa->next=qb;
free(lb);
return(Pa);
} 一元多项式的相加 请添个主函数谢谢