#include
#includetypedef struct Polynomial
{float coef;int expn;struct Polynomial *next;
}*Polyn,Polynomial; //Polyn为结点指针类型void Insert(Polyn p,Polyn h)
{ if(p->coef==0) free(p); //系数为0的话释放结点else{Polyn q1,q2;q1=h;q2=h->next;while(q2&&p->expnexpn){ //查找插入位置q1=q2;q2=q2->next;}if(q2&&p->expn==q2->expn){ //将指数相同相合并q2->coef+=p->coef;free(p);if(!q2->coef){ //系数为0的话释放结点q1->next=q2->next;free(q2);}}else{ //指数为新时将结点插入p->next=q2;q1->next=p;}}
}//InsertPolyn CreatePolyn(Polyn head,int m)
{//建立一个头指针为head、项数为m的一元多项式int i;Polyn p;p=head=(Polyn)malloc(sizeof(struct Polynomial));head->next=NULL;for(i=0;icoef,&p->expn);Insert(p,head); //调用Insert函数插入结点}return head;
}//CreatePolynvoid DestroyPolyn(Polyn p)
{//销毁多项式pPolyn q1,q2;q1=p->next;q2=q1->next;while(q1->next) {free(q1);q1=q2;//指针后移q2=q2->next;}
}void PrintPolyn(Polyn P)
{ Polyn q=P->next; int flag=1;//项数计数器if(!q){ //若多项式为空,输出0putchar('0'); printf("\n");return;} while (q){if(q->coef>0&&fl
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!