資料結構 一元n次多項式模板

2021-10-10 01:48:18 字數 3910 閱讀 5135

一元n次多項式

我把first開到公有了。

實驗二:一元多項式的基本運算

實驗目的:掌握用線性表實現一元多項式的基本運算。

實驗內容:使用鏈式儲存實現一元多項式的加法、減法、乘法和求導。即:

c(x)= a(x)+b(x);c(x)= a(x)-b(x) c(x)= a(x)*b(x) c(x)= a』(x)

選單:1)c :分別建立兩個多項式a(x)和b(x),其中 輸入時按照 指數的公升序順序輸入,遇到係數為0則停止。例如:輸入 :

1 2 3 4 5 6 7 8

2 3 4 5 6 7 0 

則生成的多項式分別為:

a(x)=x^2+3x^4+5x^6+7x^8

b(x)=2x^3+4x^5+6x^7

2)p:計算c(x)= a(x)+b(x),計算完畢後輸出c(x)的 結果

3)s: 計算c(x)= a(x)-b(x),計算完畢後輸出c(x)的 結果

4)m: 計算c(x)= a(x)*b(x),計算完畢後輸出c(x)的 結果

5)d: 計算c(x)= a』(x),計算完畢後輸出c(x)的 結果

6)v: 首先輸入乙個 float型資料,然後計算 a(x)並輸出計算的結果。

7)e: 分別清空a(x)、b(x)、c(x)三個多項式。

8)x: 退出程式。

例如:輸入

期望輸出

實際輸出

c

1 2 3 4 5 6 7 8 0

2 3 4 5 6 7 0sp

mdv2

x

c(x)=x^2-2x^3+3x^4-4x^5+5x^6-6x^7+7x^8

c(x)=x^2+2x^3+3x^4+4x^5+5x^6+6x^7+7x^8

c(x)=2x^5+10x^7+28x^9+52x^11+58x^13+42x^15

c(x)=2x+12x^3+30x^5+56x^7

2164.00

c(x)=x^2-2x^3+3x^4-4x^5+5x^6-6x^7+7x^8

c(x)=x^2+2x^3+3x^4+4x^5+5x^6+6x^7+7x^8

c(x)=2x^5+10x^7+28x^9+52x^11+58x^13+42x^15

c(x)=2x+12x^3+30x^5+56x^7

2164.00

c

2 2 0

2 2 3 3 0ps

mdv3.1

x

c(x)=4x^2+3x^3

c(x)=-3x^3

c(x)=4x^4+6x^5

c(x)=4x

19.22

c(x)=4x^2+3x^3

c(x)=-3x^3

c(x)=4x^4+6x^5

c(x)=4x

19.22

c

3 0 2 2 0

-2 2 3 3 0mv

2.1psd

x

c(x)=-6x^2+9x^3-4x^4+6x^5

11.82

c(x)=3+3x^3

c(x)=3+4x^2-3x^3

c(x)=4x

c(x)=-6x^2+9x^3-4x^4+6x^5

11.82

c(x)=3+3x^3

c(x)=3+4x^2-3x^3

c(x)=4x

通過所有測試 

#include #includeusing namespace std;

class list;

class linknode

linknode (linknode *ptr = null)

~linknode() ;

};class list

~list ()

void makeempty (linknode *first); //鍊錶置空

int remove ( int i ); //需要補充的成員函式

void input( linknode *first);

void output( linknode *aa); //需要補充的成員函式

void sort( linknode *aa);

void insert(int val);

void add(linknode *aa,linknode *b);

void jian(linknode *aa,linknode *b);

void mult(linknode *aa,linknode *b);

void devide(linknode *aa);

double caculate(linknode *aa,double val);

};void list:: makeempty (linknode *first)

}void list:: input( linknode *first)

}void list::sort(linknode *first)

j=j->link;

}i=i->link;

}}void list::output( linknode *first)

else

else if(q->p!=1)

else if(q->p==1)

}q =q->link;

}if(cnt==0) cout<<"0"aj=j->link;

}if(f==0)

i=i->link;

}///

///i=b;///*i=b是錯誤寫法

while(i->link!=null)

j=j->link;

}if(f==0)

i=i->link;

}}void list::jian(linknode *aa,linknode *b)

j=j->link;

}if(f==0)

i=i->link;

}///

///i=b;///*i=b是錯誤寫法

while(i->link!=null)

j=j->link;

}if(f==0)

i=i->link;

}}void list::mult(linknode *aa,linknode *b)

i=i->link;

}linknode *temp=first->link;

sort(first);

//output(first);

while(temp!=null)

temp->link=tt->link;

}temp=tt->link;

}}void list::devide(linknode *aa)

return ans;

}int main()

// la.output(la.first);

// cout<>s;

if(s[0]=='x')

return 0;

else if(s[0]=='s')

else if(s[0]=='p')

else if(s[0]=='m')

else if(s[0]=='d')

else if(s[0]=='v')

else if(s[0]=='e')

}return 0;

}

資料結構 一元多項式

void initlist polynode l 初始化多項式單鏈表 int getlength polynode l 求多項式單鏈表的長度 polynode getelem polynode l,int i 返回多項式單鏈表中第i個結點的指標 polynode locate polynode l,...

資料結構 一元多項式相加

一元多項式相加 include include struct node typedef struct node polynomial 建立帶有表頭的鍊錶 poly用於儲存係數和指數 polynomial createpoly int poly,int len return head 銷毀鍊錶 voi...

資料結構 一元多項式加法

7 17 一元多項式的加法 20 分 設計程式求兩個一元多項式的和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數。數字間以空格分隔。輸出1行,以指數遞降方式輸出和多項式非零項的係數和指數 保證不超過整數的表示範圍 數字間以空格分隔,但結尾不能有多餘空格...