void Insert(Polyn p,Polyn head){
if(p->coef==0)
free(p); //若p的系数为0则释放结点
else
{
Polyn q1,q2;
q1=head;
q2=head->next;
while(q2&& p->expn > q2->expn)
{ //查找p的插入位置
q1=q2; //确定输出的多项式为升幂排列
q2=q2->next;
}
if(q2&& p->expn == q2->expn)
{ //若输入的指数相同,则合并同类项
q2->coef += p->coef;
free(p);
if(q2->coef==0) //q2项系数为0时,直接插入
{
q1->next=q2->next;
free(q2);
}
}
else
{ //指数为新时将结点插入
p->next=q2;
q1->next=p;
}
}
}