一元多项式相加问题实验报告

一元多项式相加问题实验报告

ID:27617176

大小:637.60 KB

页数:15页

时间:2018-12-05

一元多项式相加问题实验报告_第1页
一元多项式相加问题实验报告_第2页
一元多项式相加问题实验报告_第3页
一元多项式相加问题实验报告_第4页
一元多项式相加问题实验报告_第5页
资源描述:

《一元多项式相加问题实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一元多项式相加问题一.问题描述设计算法实现•-元多项式的简单运算。二.数据结构设计分析任意一元多项式的描述方法可知,一个一元多项式的每一个子项都由“系数---指数”两部分组成,所以可以将它抽象成一个由“系数----指数对”构成的线性表。基于这样的分析,可以采用一个带有头结点的单链表来表示一个一元多项式。具体数据类型定义为:typedefstructnode{floatcofe;//系数域intexp;//指数域structnode*next;//指针域指向下一个子项}*polynode,poly;Polynodehead_a,head_

2、b,head_c;这三个指针分别作为链表A,B和C的头指针。三.功能设计1.输入并建立多项式的功能模块此模块要求按照“系数---指数对”的输入格式输入各个子项,输入一个子项,通过遍历链表比较指数的大小,将新结点插在合适的位置,使多项式的指数按递增的顺序存储。当遇到输入结束标志是停止输入,而转去执行程序下面的部分。具体函数构造为:polynodecreat_polynode(){polynodeA,p,q,s;//建立这种类型的头指针,尾指针,遍历指针和动态指针floata;intb;A=newpoly;A->next=NULL;q=A;

3、p=A;cin»a;cin»b;while(a!=()

4、

5、b!=0){s=newpoly;s->cofe=a;s-〉exp=b;while(q->next){if(q->next->expnext;//遍历链表,若指数大于原链表指数,指针后移一个else{s-〉next=q-〉next;q-〉next=s;break;//若不是,将结点插入指针后而}if(q->next==NULL){s->next=p->next;p-〉next=s;p=s;//q遍历到链表尾仍未插入,将结点插入最后,改变尾指针使其指向新结点}q=A;

6、//让q返回头指针处,以便下一次遍历链表cin»a;cin»b;}if(p!=NULL)p->next=NULL;returnA;}1.多项式相加的功能模块此模块根据在1中建立的两个多项式进行相加运算,并存放在以C为头指针的一个新链表中。可以采用如下方法进行设计:设指针p,q,r分别指向描述多项式;的链表A,B,C头部,比较p-〉exp与q-〉exp;若p->exp小,则做如下操作:while(p!=NULL&&q!=NULL)//在两个指针不为空的怡况下{r=newpoly;if(p-〉exp

7、ofe;if(r->cofe==0){deleter;p=p-〉next;continue;//若r指向的系数为,则p前进,释放r并强制执行下一次循环}r-〉exp=p-〉exp;r->next=s->next;s->next=r;s=r;p=p-〉next;//p指针指句的指数小,将此结点赋给r,p指针前进}若p-〉exp=q-〉exp,则:elseif(p->exp==q->exp){r-〉cofe=p-〉cofe+q-〉cofe;//若两指针指数部分相等,则系数相加赋给rif(r->cofe==0){deleter;p=p-〉ne

8、xt;q=q->next;continue;}r->exp=p->exp;r->next=s->next;s-〉next=r;s=r;p=p-〉next;q=q->next;//两指针均前进}养p-〉exp〉q-〉exp,PPJ:elseif(p-〉exp〉q-〉exp){r-〉cofe=q-〉cofe;if(r->cofe==0){deleter;q=q-〉next;continue;}r-〉exp=q-〉exp;r-〉next=s-〉next;s->next=r;s=r;q=q-〉next;}}在两个指针中有一个为空以后,可以进行如

9、下操作将多项式中剩余项赋到C中:while(p==NULL&&q!=NULL)r=newpoly;r->cofe=q->cofe;r-〉exp=q-〉exp;r->next=s->next;s->next=r;s=r;q=q->next;}//若有一个多项式已经结束则把另一个多项式的值赋给新多项式while(q==NULL&&p!=NULL){r=newpoly;r->cofe=p->cofe;r-〉exp=p-〉exp;r->next=s->next;s->next=r;s=r;p=p-〉next;}if(r!=NULL)r->nex

10、t=NULL;1.多项式显示的功能模块此模块用于多项的显示,用“系数…指数对”的形式表示表达式:cout<<"(’’<next;一.界面设计

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

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

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