南郵資料結構實驗1 3 一元多項式的相加和相乘

2021-06-26 02:28:44 字數 1909 閱讀 4551

1.設計帶表頭結點的單鏈表表示的多項式類,在該類上定義和實現教材2.4節中程式2.7的多項式類上的各個運算。

2.在該類上增加成員函式void polymul(polynominal & r),並過載*運算子。

3.實現選單驅動的main函式,測試多項式類上各個運算:輸入多項式,顯示多項式,多項式加法和乘法運算。

#includeclass term        // 多項式的每一項類

;term::term(int c, int e) :coef(c), exp(e)

term::term(int c, int e, term*nxt) : coef(c), exp(e)

term * term::insertafter(int c, int e) //插入一項 p呼叫 呼叫結束 p指向插進來的項

ostream & operator<< (ostream &out,const term &val) //輸出每一項運算子過載

return out;

}//#include"term.h"

class polynominal

;polynominal::polynominal() //帶表頭的 非迴圈鍊錶

polynominal::~polynominal() //帶表頭結點單鏈表的析構

}void polynominal::addterms(istream& in) //多項式 輸入各項

}void polynominal::output(ostream& out)const //多項式 輸出各項

while (p);

cout << "\n" << endl;

}ostream& operator<<(ostream& out, const polynominal& x)

istream& operator>>(istream& in, polynominal& x)

polynominal & operator +(polynominal& a, polynominal& b)

polynominal& operator *(polynominal& a, polynominal& b)

void polynominal::polyadd(polynominal& r) //多項式相加

//經過此迴圈,q裡次數比p裡所有元素高的都在前面。

if (p->exp == q->exp)

}else if(p->exp >q->exp)

else

p = p->link; }}

void polynominal::polymul(polynominal& r) //多項式乘法

q1=first; q=q1->link; //q 歸位

p=p->link;

}

term *t1=t.first->link; //增加的**

term *b_t=t.first->link; //對t的每一項進行排序,並且合併。 最終降冪排序。

t=b_t->link;

while(t1)

else

}t1=t1->link;

b_t=t1;

t=t1->link;

if(!t) break;

}while(q)

q1=first; q=first->link; //q 歸位

polyadd(t);

}void menu()

while(choice);

}

資料結構 一元多項式

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

資料結構實驗之一元多項式相加

實驗內容 結合書上第41頁的例子,採用鏈式儲存結構,將兩個線性鍊錶表示的一元多項式相加,並輸出。此一元多項式遵循多項式相加運算規則 對於兩個一元多項式中存在指數相同的項時,其對應係數相加。合併後係數和為零時,刪除 和多項式 中此項 合併後係數和不為零時,則構成 和多項式 中的一項。對於兩個一元多項式...

資料結構實驗 實驗二 一元多項式相加

一 實驗目的 1 了解鏈式儲存結構的基本知識 2 掌握演算法思想和資料結構的描述 3 結合一元多項式相加的運算規則。二 實驗內容 結合書上第41頁的例子,採用鏈式儲存結構,將兩個線性鍊錶表示的一元多項式相加,並輸出。此一元多項式遵循多項式相加運算規則 對於兩個一元多項式中存在指數相同的項時,其對應係...