struct PolyNode{ int coef;//系数 int expon;//指数 struct PolyNode *link;//指向下一个结点的指针 }; typedef struct PolyNode *Polynomial; Polynomial P1,P2; Polynomial PolyAdd(Polynomial P1,Polynomial P2)//多项式加法链表实现 { Polynomial front,rear,temp; int sum; rear=(Polynomial)malloc(sizeof(struct PolyNode)); front=rear;//由front记录结果多项式链表头结点 while(P1&&P2)//当两个多项式都有非零项待处理时 switch(Compare(P1->expon,P2->expon)){ /*第一个值大*/ case 1: Attach(P1->coef,P1->expon,&rear); P1=P1->link; break; /*第二个值大*/ case -1: Attach(P2->coef,P2->expon,&rear); P2=P2->link; break; /*两个值相等*/ case 0: sum=P1->coef+P2->coef; if(sum)Attach(sum,P1->expon,&rear); P1=P1->link; P2=P2->link; break; } //当while退出时,P1、P2有一个为空。 //将未处理完的另一个多项式的所有结点依次复制到结果多项式中去 f
多项式加法运算链表实现
最新推荐文章于 2021-04-18 12:53:03 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)