求救:在C++中用链表实现多项式的加,减,乘

来源:百度知道 编辑:UC知道 时间:2024/05/29 00:05:39
那位高手来帮帮忙,小弟要做一个如题的程序,但遇到不少困难,特别是乘法,不知道怎么实现小弟现在做的代码如下:
#include<iostream.h>

class term
{public:
term(int c,int e);
term(int c,int e,term* nxt);
term*insertafter(int c,int e);
private:
int coef;
int exp;
term*link;
friend ostream & operator<<(ostream&,const term &);
friend class polynominal;
};
term::term(int c,int e):coef(c),exp(e)
{link=0;
}
term::term(int c,int e,term*nxt):coef(c),exp(e)
{link=nxt;
}
term*term::insertafter(int c,int e)
{link=new term(c,e,link);
return link;
}
ostream &operator<<(ostream & out,const term & val)
{if(val.coef==0) return out;
else if(val.coef==1&&val.exp!=0) out<<""; //如果系数为1,就不显示系数
else
out<<val.coef;
switch(val.exp){
case 0:break;
case 1:out<<"X";break;
default:out<<"X^"<<val.exp;break;

补充上面的程序....

while(p->exp<q->exp)
{
q1=q;q=q->link;
}
if(p->exp==q->exp)
{
q->coef=q->coef-(p->coef);
p=p->link; ///////////////////////////////
if(q->coef==0)
{
q1->link=q->link;delete(q);
q=q1->link;
}
else
{
q1=q;q=q->link;
}
}
else
{p->coef=0-(p->coef); ///////////////////////////////////
q1=q1->insertafter(p->coef,p->exp);
p=p->link;
}
}
}
ostream& operator<<(ostream & out,const polynominal &x)
{x.output(out);return out;
}
istream& operator >>(istream& in,polynominal &x)
{x.addterms(in);return in;
}

polynominal&operator +(polynominal &a,polynominal &b)
{a.polyadd(b);return a;
}
polynominal&operator -(polynominal &a,polynominal &b)<