一元多項式的應用
1.儲存結構
typedef struct
{
float c;//係數
int e;//指數
}Term;
typedef struct PNode
{
Term data;
struct PNode *next;
}PNode,PLink;
2.插入
void Insert(PLink &L,Term x)
{
PNode *q=L,*p=L->next,*s;
while(q)
{
if(p!NULL&&x.e>q->data.e&&x.e<p->data.e)
{
s=(PNode*)malloc(sizeof(PNode));
s->data=x;s->next=p;q->next=s;
return;
}
else if(p!=NULL&&x.e==p->data.e)
{
if(p->data.c+x.c==0)
{
q->next=p->next;
free(p);
return;
}
else
{
p->data.c+=x.c;
return;
}
}
else if(p==NULL&&x.e>q->data.e)
{
s=(PNode*)malloc(sizeof(PNode));
s->data=x;s->next=q->next;q->next=s;
return;
}
else
{
q=p;
p=p->next;
}
}
}
3.建立
void Create(PLink &L)
{
Term x;
L=(PNode *)malloc(sizeof(PNode));
L->data.e=-1;
L->next=NULL;
while(1)
{
scanf("%f%d",&x.c,&x.e);
if(x.c==0)
break;
Insert(L,x);
}
}
4.求和
void Add(PLink La,PLink Lb,PLink &Lc)
{
PNode *s,*pa,*pb,*pcr;
Lc=(PNode*)malloc(sizeof(PNode));
Lc->data.e=-1;
Lc->next=NULL;
pa=La->next;
pb=Lb->next;
pcr=Lc;
while(pa&&pb)
{
if(pa->data.e<pb->data.e)
{
s=(PNode*)malloc(sizof(PNode));
s->data=p->data;
s->next=NULL;
pcr->next=s;
pcr=s;
pa=pa->next;
}
else if(pa->data.e==pb->data.e)
{
if(pa->data.c+pb->data.c!=0)
{
s=(PNode*)malloc(sizof(PNode));
s->data.c=pa->data.c+pb->data.c;
s->data.e=pa->data.e;
s->next=NULL;
pcr->next=s;
pcr=s;
}
pa=pa->next;
pb=pb->next;
}
else
{
s=(PNode*)malloc(sizof(PNode));
s->data=pb->data;
s->next=NULL;
pcr->next=s;
pcr=s;
}
}
while(pa)
{
s=(PNode*)malloc(sizof(PNode));
s->data=pa->data;
s->next=NULL;
pcr->next=s;
pcr=s;
pa=pa->next;
}
while(pb)
{
s=(PNode*)malloc(sizof(PNode));
s->data=pb->data;
s->next=NULL;
pcr->next=s;
pcr=s;
pb=pb->next;
}
}
5.乘積
void Mul(PLink La,PLink Lb,PLink &Lc)
{
PNode *pa,*pb;
Term x;
Lc=(PNode *)malloc(sizeof(PNode));
Lc->data.e=-1;
Lc->next=NULL;
pa=La->next;
while(pa)
{
pb=Lb->next;
while(pb)
{
x.c=pa->data.c*pb->data.c;
x.e=pa->data.e+pb->data.e;
Insert(Lc,x);
pb=pb->next;
}
pa=pa->next;
}
}
相關文章
- 一元多項式操作
- 資料結構學習(C++)——單連結串列應用(一元多項式【1】) (轉)資料結構C++
- 資料結構學習(C++)——單連結串列應用(一元多項式【2】) (轉)資料結構C++
- 一元稀疏多項式加減法計算器
- 正交多項式介紹及應用
- 詳解線性結構 —— 一元多項式的乘法與加法運算
- 基礎實驗3-2.1 一元多項式求導 (20分)求導
- 1010 一元多項式求導 (25分)/c++實現求導C++
- 密碼學承諾之原理和應用 - Kate多項式承諾密碼學
- 多項式
- 用多項式的逆優化dp總結優化
- C++ 一元謂詞對應的lambda表示式C++
- Render函式在Vue多頁面應用中的應用函式Vue
- 多項式乘法
- vim的正規表示式(二)應用例項
- 在 React 中管理同一元件的多個例項中的狀態React元件
- 多項式全家桶
- 生成函式與多項式函式
- Android 應用內多程式的使用及注意事項Android
- 15.6 用多項式一致逼近連續函式函式
- 【組合數學】多項式定理 ( 多項式係數 | 多重集全排列 | 對應放球子模型方案數 | 多項式係數相關恆等式 )模型恆等式
- .Net分散式快取應用例項:Couchbase分散式快取
- 36:計算多項式的值
- 實現多項式的JAVA類Java
- 【模板】多項式乘法逆
- Hive 分析函式lead、lag例項應用Hive函式
- ”innerHTML“的應用例項HTML
- 多項式學習筆記筆記
- Excel函式應用例項:計算保險收益(轉)Excel函式
- Alluxio在多級分散式快取系統中的應用UX分散式快取
- Swoole 多協議 多埠 的應用協議
- BZOJ 3456: 城市規劃 [多項式求逆元 組合數學 | 生成函式 多項式求ln]函式
- Vue函式式元件的應用Vue函式元件
- 普通有限多項式筆記筆記
- 機器學習 - 似然函式:概念、應用與程式碼例項機器學習函式
- Excel函式應用例項:折舊值計算(轉)Excel函式
- Excel函式應用例項:計算客流均衡度(轉)Excel函式
- Excel函式應用例項:銷售額預測(轉)Excel函式