一元多项式相加

一元多项式相加

ID:20188197

大小:32.50 KB

页数:3页

时间:2018-10-10

一元多项式相加_第1页
一元多项式相加_第2页
一元多项式相加_第3页
资源描述:

《一元多项式相加》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#includeusingnamespacestd;typedefstructPNode{floatcoef;//系数intexpn;//指数structPNode*next;}PNode,*Polynomial;//-----------一元多项式的创建---------voidCreatPolyn(Polynomial&p,intm){p=newPNode;Polynomialq,pre;PNode*s;p->next=NULL;//先建立一个带头结点的单链表cout<<"请输入多项式:"<

2、/生成新结点cin>>s->coef>>s->expn;//输入元素值pre=p;//pre用于保存q的前驱,初值为头结点q=p->next;while(q&&q->expnexpn)//通过比较指数找到第一个大于输入项指数的项q{pre=q;q=q->next;}s->next=q;//将输入项s插入到q和其前驱结点pre之间pre->next=s;}}//-----------一元多项式的输出------------voidPrintPolyn(Polynomial&p){p=p->next;while(p){cout<coef<<""<expn<<"";p=p-

3、>next;}}//------------一元多项式的相加------------voidAddPolyn(Polynomial&pa,Polynomial&pb){//多项式加法:pa=pa+pb,利用两个多项式的结点构成“和多项式”floatsum;Polynomialp1,p2,p3,r;p1=pa->next;p2=pb->next;//p1和p2初值分别指向pa和pb的第一个结点p3=pa;//p3指向和多项式的当前结点,初值为pawhile(p1&&p2){if(p1->expn==p2->expn)//指数相等{sum=p1->coef+p2->coef;//sum保存两项的

4、系数之和if(sum!=0)//系数和不为0{p1->coef=sum;//修改pa当前结点p1的系数值为两项系数之和p3->next=p1;p3=p1;//将修改后的pa当前结点p1链在p3之后,p3指向p1p1=p1->next;//p1指向后一项r=p2;p2=p2->next;deleter;//删除pb当前结点r}else{r=p1;p1=p1->next;deleter;r=p2;p2=p2->next;deleter;}}elseif(p1->expnexpn)//pa当前结点p1的指数较小{p3->next=p1;p3=p1;p1=p1->next;}else{p3

5、->next=p2;p3=p2;p2=p2->next;}}p3->next=p1?p1:p2;//插入非空多项式的剩余段deletepb;}intmain(){PNode*pa,*pb;intm;cout<<"创建第一个一元多项式:"<>m;CreatPolyn(pa,m);cout<<"创建第二个一元多项式:"<>m;CreatPolyn(pb,m);cout<<"两个多项式相加有:"<

6、rn0;}//--1105_XL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。