一元多项式顾名思义就是好多个式子相加减,显然想到的就是利用单链表来实现,我在此处只讨论一元多项式相加的情况,相减也是一样的做法。首先,两个一元多项式相加,可以把它转化为两个单链表的合并,这是首要,然后就是将相同指数的项合并,将不同指数的项从小到大的顺序排列,使得相加后的一元多项式更加美观。具体代码及注释如下:
#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(poly)
typedef struct term{
float coef;
int expn;
struct term*next;
}poly,*link;
void creatpoly(link*p,int m);
void printpoly(link p);
int cmp(link p1,link p2);
link addpoly(link pa,link pb);
link reverse(link p);
int main()
{
link p1,p2;
int L1,L2;
printf("请输入第一个多项式的项数:");
scanf("%d",&L1);
creatpoly(&p1,L1);
printf("第一个多项式为:");
printpoly(p1);
printf(