数据结构c++ 多项式乘法 帮我改个错啊!

来源:百度知道 编辑:UC知道 时间:2024/06/26 03:07:17
#include <iostream.h>

class Polynominal;
class Term
{
public:
Term(int c,int e);
Term(int c,int e,Term* next);
Term* InsertAfter(int c,int e);
private:
int coef;
int exp;
Term* link;
friend ostream& operator<<(ostream &out,const Term &a);
friend class Polynominal;
};

Term::Term(int c,int e):coef(c),exp(e)
{
link=0;
}

Term::Term(int c,int e,Term* next):coef(c),exp(e)
{
link=next;
}

Term* Term::InsertAfter(int c,int e)
{
link=new Term(c,e,link);
return link;
}

ostream& operator<<(ostream &out,const Term& a)
{
if(a.coef==0)
return out;
out<<a.coef;
switch(a.exp)
{
case 0:
break;
case 1:
out<<"X";
break;
default:
out<<"X^"<<a.exp;
break;
}
return out;

兄弟,你的程序用的东西好多哦,什么重载什么的我都不会,还有我找不到你的乘法函数在那里!我前两天也写了个多项式相乘的作业,要不你看看。
算法是一个多项式的每一项乘以另一个多项式,然后加起来,就是乘法了。
#include <iostream>
#include <malloc.h>
using namespace std;

typedef struct Term { //结构定义
int couf;
int exp;
Term *next;
}Sqterm;
Sqterm* GetDate() //输入多项式函数
{
Sqterm *head;
char ch='0';
Sqterm *temp,*s;
cout<<"多项式的系数和指数,以回车号结束,如:2*x^2+x^3输入2 2 1 3回车。"<<endl;
temp=(Sqterm*)malloc(sizeof(Sqterm)); //给第一项赋值
head=temp; //没有头接点
temp->next=NULL;
cin>>temp->couf>>temp->exp;
while (getchar(ch)!='\n') //给后面的赋值
{
s=(Sqterm*)malloc(sizeof(Sqterm));
cin>>s->couf>>s->exp;
s->next=NULL;
temp->next=s;
temp=s;
}
return head;

}
void PrintDate(Sqterm* head) //输出多项式函数