捕捉一元多项式的描述要点
一元多项式有多个数据项,每个数据项的关键点是变量的指数,变量的系数
- 顺序存储,一维数组进行存储
对应关系:数组下标0-n-1,和变量系数对应,数组的数据单元可以存储变量的系数
优点:
数组适合随机存取,利用它存储多项式,做加减法运算很方便
缺点:
若非零项少,浪费存储空间
- 顺序存储:利用结构数组只存储非零项数据
1、结构数组,就是可以存储多个结构体的数组
2、对于一元多项式,结构体,只要包含两个属性,一个是系数,一个是指数
3、为了方便查找,可以按指数的升序或降序序列进行存储
typedef struct {
int expon;//指数
int coef;//系数
}Polynomial;
Polynomial data[MAXSIZE];//结构数组
- 链式存储,非零项
1、链表的每个结点应包含,系数+指数+next指针
typedef struct Polynomial{
int expon;//指数
int coef;//系数
struct Polynomial *next;
}Polynomial;
来张图更直观一些
接下来,来份代码,感受一下,这份代码了良久啊,码艺不精,请见谅啊。
#include<stdio.h>
#include<stdlib.h>
typedef struct PolynomialNode* PolynomialLink;
typedef struct PolynomialNode{
int coef;//系数
int expon;//指数
PolynomialLink next;//指针指向下一项
}PolynomialNode;
/*
在尾部插入多项式的项
*/
void Attach(int coef,int expon,PolynomialLink *rear){
PolynomialLink temp;
temp = (PolynomialNode*)malloc(sizeof(PolynomialNode));
temp->coef = coef;
temp->expon = expon;
temp->next