相信这是许多学数据结构的同学必须做的题之一,下面用链表来实现
首先要在结构体里定义系数和指数,和指向下一个的指针
typedef struct polynomial
{ int coefficent;
int exponent;
struct polynomial *next;
}polynomial,*polynomiallist;
in
用模块化思想定义定义函数
输入函数
polynomiallist create_polynomial()
{
polynomial *head;
polynomial*q;
head=(polynomiallist)malloc(sizeof(polynomial));
q=(polynomiallist)malloc(sizeof(polynomial));
head->next=NULL;
q=head;
while(t--)
{
scanf("%d%d",&coe,&exp);
polynomial *p=(polynomial*)malloc(sizeof(polynomial));
p->coefficent=coe;
p->exponent=exp;
p->next=q->next;
q->next=p;
q=p;
}
return head;
}
输出函数
void print(polynomial *head)
{
polynomial *p;
flag=0; int c;
int e;
p=head->next;
while(p->next!=NULL)
{
c=p->coefficent;
e=p->exponent; p=p->next;
if(c==0)
continue;
else if(c!=1&&e!=1)
{
printf("%dX^%d+",c,e);
flag=1;
}
else if(c==1&&e!=1)
{
printf("X^%d+",e);
flag=1;
}