收藏 分享(赏)

多项式的加减乘除c++.doc

上传人:精品资料 文档编号:10127526 上传时间:2019-10-12 格式:DOC 页数:5 大小:112KB
下载 相关 举报
多项式的加减乘除c++.doc_第1页
第1页 / 共5页
多项式的加减乘除c++.doc_第2页
第2页 / 共5页
多项式的加减乘除c++.doc_第3页
第3页 / 共5页
多项式的加减乘除c++.doc_第4页
第4页 / 共5页
多项式的加减乘除c++.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、#include#includeusing namespace std;/多项式节点的定义 struct Termfloat 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 /重载运算符 friend Polynomial operator + (Polynomial /重载运算符+ friend Polynomial operator * (Polynomi

2、al /重载运算符* ;/在当前由 this 指针指示的项后面插入一个新项 Term* Term:InsertAfter(float c,int e)link=new Term(c,e,link); /创建一个新节点,自动链接 return link; / 插入到 this 后面 / Term 的友元函数,输出一个节点 x 的内容到输出流 out 中 ostreamwhile(srcptr!=NULL)destptr-InsertAfter(srcptr-coef,srcptr-exp);srcptr=srcptr-link;destptr=destptr-link;/计算最大阶数,当多项式按

3、升序排列时,最后一项是指数最大的 int Polynomial:maxOrder()Term* current=first;while(current-link!=NULL)current=current-link;return current-exp;/Polynomial 类的友元函数,从输入流 in 输入各项,用尾插法建立一个多项式 istream / rear 是尾指针 int c,e;while(1)coutce;if(eInsertAfter(c,e);return in;/Polynomial 类的友元函数:输出带 附加头结点的多项式链表 x ostreamcoutcoef0)o

4、utlink;outlink;pb=B.getHead()-link;while(pa!=NULLif(fabs(temp)0.001)pc=pc-InsertAfter(temp,pa-exp); /系数相加后不为零,将结果保存 pa=pa-link;pb=pb-link;else if(pa-expexp)pc=pc-InsertAfter(pa-coef,pa-exp);pa=pa-link;elsepc=pc-InsertAfter(pb-coef,pb-exp);pb=pb-link;if(pa!=NULL)p=pa;elsep=pb;while(p!=NULL) /处理链剩余部分

5、pc=pc-InsertAfter(p-coef,p-exp);p=p-link;return C;/Polynomial 类的友元函数:将一元多项式 A 和 B 相乘,乘积用带附加头结点的单链表存储/返回值为指向存储乘积多项式的单链表的头指针 Polynomial operator * (Polynomial int AL,BL,i,k,maxExp;Polynomial C; /结果多项式 pc=C.getHead();AL=A.maxOrder();BL=B.maxOrder();if(AL!=-1|BL!=-1)maxExp=AL+BL;float *result=new floatm

6、axExp+1;for(i=0;ilink;while(pa!=NULL)pb=B.getHead()-link;while(pb!=NULL)k=pa-exp+pb-exp;resultk=resultk+pa-coef*pb-coef;pb=pb-link;pa=pa-link;for(i=0;i0.001)pc=pc-InsertAfter(resulti,i);delete result;pc-link=NULL;return C;int main()Polynomial A,B,C;coutA;coutB;C=A+B;cout“A+B 为: “Cendl;C=A*B;cout“A*B 为: “Cendl;system(“pause“);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报