多项式是数学中常用的一种表达式,现在我们给出用c语言编程实现多项式的计算,并且多项式的计算是链表的典型应用,通过编程实现多项式,也为我们巩固一下链表的知识以及它的生活应用。
下面给出代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct node
{
float coef; //系数域
int exp; //指数域
struct node *next; //指针域
}*polynode;
int LocateElem(polynode L,int e) //在链表中查找与e相等的元素并返回元素位置
{
int i;
polynode p;
p=L->next;
for(i=0;i<L->exp;i++)
{
if(p->exp==e)
return i+1;
p=p->next;
}
return 0;
}
int CreatePoly(polynode &L ,int m)
{
int i;
L=(polynode)malloc(sizeof(polynode));
L->coef=0.0;
L->exp=0; //头指针指数域中存放链表长度
polynode p,r;
r=L;
for(i=0;i<m;i++) //依次输入 m 个非零项
{
p=(polynode)malloc(sizeof(polynode));
scanf("%f,%d",&p->coef,&p->exp);
if(!LocateElem(L,p->exp)) //如果表中不存在相同指数项,则插入
{
r->next=p;
r=p;
L->exp++; //表长++
}
}
r->next=NULL;
return 1;
}
void print(polynode L)//打印函数
{
int i=0;
polynode p;
p=L->next;
while(i<L->exp)
{
printf("%.2f,%d ",p->coef,p->exp);
p=p->next;
i++;
if(i%10==0)
printf("\n");
}
}
void