稀疏多项式:如P(x)=1+3x1000+x20000; Q(x)=x+x50000
R(x)=1+x+3x1000+x20000+x50000
数学模型:
P=((1,0),(3,1000),(1,20000)) Q=((1,1),(1,50000)) R=((1,0),(1,1),(3,1000),(1,20000),(1,50000))
一个基本元素(1,0)称为 一个小项,可定义相应的类型Term
typedef struct
{
float coef;int expn;
}Term;
一个多项式实际可看作元素类型为term的线性结构的数据对象,可在线性表的基础上实现具体操作
但是在复杂的多项式问题中,基本定义如下
#include <bits/stdc++.h>
//函数状态码定义
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef struct
{
float coef;
int expn;
} Term;
typedef Term ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
} LNode,*LinkList;
typedef LinkList Polynomial;//Polynomial多项式;
1、线性表的创建和插入
void Insert(Polynomial P,Polynomial q)
{
LinkList prep, p;
prep=P;
p=P->next;
while( p && p->data.expn < q->da