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頁的例子,採用鏈式儲存結構,將兩個線性鍊錶表示的一元多項式相加,並輸出。此一元多項式遵循多項式相加運算規則 對於兩個一元多項式中存在指數相同的項時,其對應係...