一元多項式相加 鍊錶

2021-10-09 21:17:12 字數 1440 閱讀 6715

【問題描述】

設計乙個一元稀疏多項式簡單計算器。

【基本要求】

一元稀疏多項式簡單計算器的基本功能是:

輸入並建立多項式;

輸出多項式,輸出形式為整數序列:n,c1,e

1,c2,e

2,…,c

n,en,其中n是多項式的項數,ci,e

i分別是第i項的係數和指數,序列按指數降序排列;

多項式a和b相加,建立多項式a+b;

【測試資料】

(2x+5x

8-3.1x

11)+(7-5x

8+11x

9)=(-3.1x

11+11x

9+2x+7);

(1+x+x2+x

3+x4+x

5)+(-x3-x

4)=(1+x+x2+x

5);(x+x

3)+(-x-x

3)=0;

(x+x

100)+(x

100+x

200)=(x+2x

100+x

200);

(x+x2+x

3)+0=(x+x2+x

3);互換上述測試資料中的前後兩個多項式

**:

#includeusing namespace std;

#define max 20 //多項式最多項數

typedef struct //定義存放多項式的陣列型別

polyarray[max];

typedef struct pnode //定義單鏈表結點型別

polynode;

void disppoly(polynode *l) //輸出多項式

if(p->coef!=1)

} p=p->next;

i++;

} if(i==0)

cout << 0;

cout << endl;

}void createlistr(polynode * &l,polyarray a,int n)//尾插入法建表

r->next=null;//將終端結點next域置為null

}void sort(polynode * &head)//按exp域的值遞減排序 }}

void add(polynode *ha,polynode *hb,polynode *&hc)//求兩個有序表的並

else if(pa->expexp)

else

pa=pa->next;

pb=pb->next;

} }if(pb!=null)//複製餘下結點

pa=pb;

while(pa!=null)

tc->next=null;

}int main()

鍊錶實現一元多項式相加

c 鍊錶實現一元多項式相加 如下 輸入多項式按次數從高到低排列 include include using namespace std intmain 定義節點型別,coe表示x前的係數,order表示x的次數 int coe,order int i int nodenuma 多項式a的項數 pri...

鍊錶實現一元多項式的相加

如下 include include struct polynomial 結構體的定義 void print polynomial l printf n int getlength polynomial l return i void newlist polynomial l l head retu...

2 一元多項式相加

成績 10開啟時間 2014年10月19日 sunday 00 00 折扣0.8 折扣時間 2014年11月2日 sunday 23 55 允許遲交 否關閉時間 2014年11月9日 sunday 23 55 編寫一元多項式加法運算程式。要求用線性鍊錶儲存一元多項式 參照課本 該程式有以下幾個功能 ...