- 11
- 0
- 约4.08千字
- 约 5页
- 2019-12-14 发布于河北
- 举报
#includeiostream
#includecmath
using namespace std;
//多项式节点的定义
struct Term{
float coef; // 系数
int exp; // 指数
Term * link;
Term(float c,int e,Term *next=NULL)
{
coef=c;
exp=e;
link=next;
}
Term* InsertAfter(float c,int e);
friend ostream operator(ostream,const Term);
};
//多项式类的定义
class Polynomial{
public:
Polynomial(); //构造函数
Polynomial(Polynomial R); //复制构造函数
int maxOrder(); // 计算最大阶数,并返回
Term * getHead() const { return first;} //取得多项式单链表的表头指针
private:
Term *first;
friend ostream operator(ostream,const Polynomial); //重载运算符
friend istream operator(istream,const Polynomial); //重载运算符
friend Polynomial operator + (Polynomial,Polynomial); //重载运算符+
friend Polynomial operator * (Polynomial,Polynomial); //重载运算符*
};
//在当前由this指针指示的项后面插入一个新项
Term* Term::InsertAfter(float c,int e)
{
link=new Term(c,e,link); //创建一个新节点,自动链接
return link; // 插入到this后面
}
// Term的友元函数,输出一个节点x的内容到输出流out中
ostream operator(ostream out,const Term x)
{
if(x.coef==0) //系数为零,不输出
return out;
outx.coef; //输出系数
switch(x.exp){ //输出指数
case 0: break;
case 1: outX;break;
default:
outXx.exp;
break;
}
return out;
}
//Polynomial类的构造函数,建立一个空链表
Polynomial::Polynomial()
{
first=new Term(0,-1);
}
//复制构造函数,用已有的对象初始化当前对象
Polynomial::Polynomial(Polynomial R)
{
first=new Term(0,-1);
Term *destptr=first,*srcptr=R.getHead()-link;
while(srcptr!=NULL){
destptr-InsertAfter(srcptr-coef,srcptr-exp);
srcptr=srcptr-link;
destptr=destptr-link;
}
}
//计算最大阶数,当多项式按升序排列时,最后一项是指数最大的
int Polynomial::maxOrder()
{
Term* current=first;
while(current-link!=NULL)
current=current-link;
return current-exp;
}
//Polynomial类的友元函数,从输入流in输入各项,用尾插法建立一个多项式
istream operator(istream in,Polynomial x)
{
Term* rear=x.getHead(); // rear是尾指针
int c,e;
while(1)
{
coutInput a term(coef,exp):endl;
ince;
if(e0) break; //e0,退出循环,输入结束
rear=rear-InsertAfter(c,e);
}
return in;
}
//Polynomial类的友元函数:输出带 附加头结点的多项式链表x
ostream operator(ostream out,
您可能关注的文档
- 多坝沟胡杨峡景区简况.doc
- 多媒体作品制作规划与设计(教案).doc
- 多媒体信息集成_教学设计.doc
- 多媒体培训总结.doc
- 多媒体工程系统集成资质评定细则.doc
- 多媒体信息发布操作说明书.doc
- 多媒体技术及特征说课稿.doc
- 多媒体教学PPT与传统板书有效整合.doc
- 多媒体技术辅助教学的利与弊.doc
- 多媒体安全培训教育工具箱.doc
- 《GB 19079.4-2025体育场所开放条件与技术要求 第4部分:攀岩场所》.pdf
- GB/T 46918.1-2025微细气泡技术 水中微细气泡分散体系气体含量的测量方法 第1部分:氧气含量.pdf
- 中国国家标准 GB/T 46918.1-2025微细气泡技术 水中微细气泡分散体系气体含量的测量方法 第1部分:氧气含量.pdf
- 《GB/T 46918.1-2025微细气泡技术 水中微细气泡分散体系气体含量的测量方法 第1部分:氧气含量》.pdf
- 中国国家标准 GB 19079.4-2025体育场所开放条件与技术要求 第4部分:攀岩场所.pdf
- 《GB/T 44807.2-2025集成电路电磁兼容建模 第2部分:集成电路电磁干扰特性仿真模型 传导发射建模(ICEM-CE)》.pdf
- GB/T 44807.2-2025集成电路电磁兼容建模 第2部分:集成电路电磁干扰特性仿真模型 传导发射建模(ICEM-CE).pdf
- 中国国家标准 GB/T 44807.2-2025集成电路电磁兼容建模 第2部分:集成电路电磁干扰特性仿真模型 传导发射建模(ICEM-CE).pdf
- GB/T 19405.4-2025表面安装技术 第4部分:湿敏器件的处理、标记、包装和分类.pdf
- 中国国家标准 GB/T 19405.4-2025表面安装技术 第4部分:湿敏器件的处理、标记、包装和分类.pdf
最近下载
- 洗煤厂操作规程.doc VIP
- 洗煤厂操作规程.doc VIP
- AI绘画:Stable Diffusion+Photoshop 课件 第6章 广告设计和生成摄影图片.pptx
- 电气装置安装工程质量检验及评定规程 第15部分:爆炸及火灾危险环境电气装置施工质量检验.pdf VIP
- 2024太阳能路灯安装与验收规范.docx VIP
- 2025年行政法基础试题及答案.docx VIP
- OTIS奥的斯XIOTIS西子奥的斯GECS IO表.pdf
- 行政法试题及答案39465.docx VIP
- 化工项目初期雨水收集池设计探讨.pdf VIP
- 《磁共振引导下聚焦超声(磁波刀)治疗震颤为主型帕金森病和特发性震颤操作规范》.pdf VIP
原创力文档

文档评论(0)