题目:编写一个算法,求一元多项式之和
考纲:一元多项式的表示与相加
题型:代码填空或算法设计
难度:★★★
参考代码
typedef struct node{
float coef;//系数
int exp;//次数
struct node *next;
}polynode;
polynode *p,*q;//用单链表存储两个一元多项式
//
void polyadd(polynode &pa,polynode &pb){
pc=pa;
p=pa->next;
q=pb->next;
pre=pa;
while(p&&q){
switch(compare(p->exp,q->exp)){
case -1:{
pre=p;
p=p->next;//(1)
break;
}
case 0:{
x=p->coef+q->coef;
if(x!=0){
p->coef=x;
pre=p;
}else{
pre=p;//(2)
free(p);
}
p=pre->next;
r=q;
q=q->next;
free(r);
break;
}
case 1:{
r=q->next;
q->next=p;
pre->next=q;
pre=q;
q=r;
break;
}
}
if(q) p->next=q;//(3)
free(pb);
}
}
参考文章