数据结构的选择:多项式的加法和乘法运算中大量涉及到数据的插入和删除操作,所以选用链表作为存储结构。链表的每个项节点有三个域,分别是系数c、指数e和指向下一结点的指针域next。
首先定义项节点Term:
class Term{
friend ostream& operator<<(ostream &,const Term &);//重载运算符用于输出多项式的项
friend class Polynominal;
public:
Term(int c,int e);
Term(int c,int e,Term* next);
Term* InsertAfter(int c,int e);//在this指针指向的结点后面插入新结点
private:
int c;
int e;
Term* next;
};
Term::Term(int c,int e){
this->c = c;
this->e = e;
next = 0;
}
Term::Term(int c,int e,Term* next){
this->c = c;
this->e = e;
this->next = next;
}
Term* Term::InsertAfter(int c,int e){
next = new Term(c,e,next);
return next;
}
ostream& operator <<(ostream& out,const Term &val){
if(val.c!=0){
out<<val.c;
switch(val.e){
case