#include
usingnamespacestd;
structterm
{
x09floatxishu;//系数
x09intzhishu;//指数
};
structLNode
{
x09termdata;//term多项式值
x09structLNode*next;
};
typedefLNode*polynomail;
/*合并同类项*/
polynomailhebing(polynomailHead)
{
x09polynomailr,q,p,Q;
x09for(q=Head->next;q!=NULL;q=q->next)//合并同类项
x09x09x09for(p=q->next,r=q;p!=NULL;)
x09x09x09x09if(q->data.zhishu==p->data.zhishu)
x09x09x09x09{
x09x09x09x09x09q->data.xishu=q->data.xishu+p->data.xishu;
x09x09x09x09x09r->next=p->next;
x09x09x09x09x09Q=p;p=p->next;
x09x09x09x09x09deleteQ;
x09x09x09x09}
x09x09x09x09else
x09x09x09x09{
x09x09x09x09x09r=r->next;
x09x09x09x09x09p=p->next;
x09x09x09x09}
x09returnHead;
}
/*又小到大排列*/
voidarrange1(polynomailpa)
{
x09polynomailh=pa,p,q,r;
x09for(p=pa;p->next!=NULL;p=p->next);r=p;
x09while(h->next!=r)//大的沉底
x09{
x09x09for(p=h;p->next!=r&&p!=r;p=p->next)
x09x09x09if(p->next->data.zhishu>p->next->next->data.zhishu)
x09x09x09{
x09x09x09x09q=p->next->next;
x09x09x09x09p->next->next=q->next;
x09x09x09x09q->next=p->next;
x09x09x09x09p->next=q;
x09x09x09}
x09x09x09r=p;//r指向参与比较的最后一个,不断向前移动
x09}
}
/*由大到小排序*/
voidarrange2(polynomailpa)
{
x09polynomailh=pa,p,q,r;
x09for(p=pa;p->next!=NULL;p=p->next);r=p;
x09while(h->next!=r)//小的沉底
x09{
x09x09for(p=h;p->next!=r&&p!=r;p=p->next)
x09x09x09if(p->next->data.zhishunext->next->data.zhishu)
x09x09x09{
x09x09x09x09q=p->next->next;
x09x09x09x09p->next->next=q->next;
x09x09x09x09q->next=p->next;
x09x09x09x09p->next=q;
x09x09x09}
x09x09x09r=p;//r指向参与比较的最后一个,不断向前移动
x09}
}
booljudge(polynomailHead)
{
x09arrange2(Head);
x09polynomailp;
x09p=Head->next;
x09boolxi=false;
x09while(p!=NULL&&p->next!=NULL&&!xi)
x09{
x09x09if(p->data.zhishu-p->next->data.zhishu>1)
x09x09x09xi=true;
x09x09p=p->next;
x09}
x09returnxi;
}
/*打印多项式,求项数*/
voidprintpolyn(polynomailP)
{
x09inti;
x09polynomailq;
x09if(P==NULL)
x09x09coutdata.zhishu;
x09x09r->next=s;r=s;
x09x09p=p->next;
x09}
x09while(q)
x09{
x09x09s=newLNode;
x09x09s->data.xishu=q->data.xishu;
x09x09s->data.zhishu=q->data.zhishu;
x09x09r->next=s;r=s;
x09x09q=q->next;
x09}
x09r->next=NULL;
x09if(newHead->next!=NULL&&