数据结构上机实验-多项式加法

数据结构上机实验-多项式加法

ID:44869200

大小:30.73 KB

页数:14页

时间:2019-10-31

数据结构上机实验-多项式加法_第1页
数据结构上机实验-多项式加法_第2页
数据结构上机实验-多项式加法_第3页
数据结构上机实验-多项式加法_第4页
数据结构上机实验-多项式加法_第5页
资源描述:

《数据结构上机实验-多项式加法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多项式加法班级:姓名:完成日期:2014-04-061.需求分析本程序的任务是实现两个多项式的加法其中多项式的系数为浮点型,指数为整数,输出的结果也为系数和指数。(1)输入的形式和输入值的范围:输入多项式的系数a和未知数X的指数b,当a和b都为零时,输入结束。输入值的范围:a为实数,b为整数。(2)输出形式:输出多项式的系数和多项式未知数X的指数即(a,b)形式。(3)程序所能达到的功能:实现两个多项式的加法,并输出最后的结果。(4)测试数据:输入:7031985170081227-9800输出:(7,0)(11,1)(22,7)(5,17)2.概要设计(1)抽象数据类

2、型的定义如下:ADTLinkList{数据对象:D={Ei

3、i=1,2,3......n;n>0;Ei属于AtomSet;AtomSet是某个数据对象}基本操作:InitList_L(&L);操作结果:创建头节点,并初始化该节点。}ADTLinkList;(2)主程序:Voidmain(){创建链表并用循环结构将数据输入到链表中;AddPolyn(L1,L2);输出结果;}(3)程序模块的调用关系主程序多项式加法模块链表模块3.详细设计(1)节点类型typedefstructLnode{floatcoef;//存储项系数intexpn;//存储项指数structLnod

4、e*next;}Lnode,*LinkList;(2)多项式的基本操作为:InitList_L(LinkList&L);//初始化头节点;voidAddPolyn(polynomialpa,polynomialpb);//实现多项式加法,并返回多项式加法的最终结果//同时释放节点Voidmain(){//创建链表L1和L2,并使p=L1,q=L2;InitList_L(LinkList&L);for(;;){cin>>a;cin>>b;if(a==0&&b==0)//跳出循环,结束输入break;m=newLnode;//创建新节点m->coef=a;m->expn=b

5、;q->next=m;q=m;q->next=null;}//输入第一个多项式的系数和X的指数for(;;){cin>>a;cin>>b;if(a==0&&b==0)//跳出循环,结束输入break;n=newLnode;//创建新节点n->coef=a;n->expn=b;p->next=n;p=n;p->next=null;}//输入第二个多项式的系数和X的指数AddPolyn(L1,L2);while((L1->next)!=null){cout<next->coef<<""<next->expn<<"";L1=L1->next;}//循环输出

6、结果}main(3)函数的调用关系图AddPolynInitList_L4.调试分析(1)调试过程中遇到的问题及解决方法:在向创建的链表里输入数据时,因为忘记将创建的新节点的next指针置空(即q->next=null),导致在输出节点的数据时出现错误。解决方法将for循环输入的最后一条语句改为q->next=null,正确的解决了这个问题。(2)算法的时空分析整个程序运行期间实行动态创建节点,一边输入数据,一边创建节点。当将全部数据输入到单链表中后再调用多项式加法这个函数,并一边实现多项式的相加,一边释放节点,有效防止了在程序反复运行过程中可能出现系统空间不够分配的现

7、象。(3)经验和体会通过编写多项加法这个程序,我将自己所学到的创建链表,初始化链表和多项式加法算法都应用了一次,这使我们不仅仅只是理论化的学习书本上的知识,而是将学习到的理论知识应用到实际的操作中来增强我们的实际操作能力,这使我增加了实际操作经验,也使我通过实际操作来认识到自己在程序编写上的不足从而增强了我的实际编写程序的能力。5.用户使用说明(1)本程序的运行环境为MicrosoftVisualC++6.0。(2)进入程序后的界面为(3)输入数据,当一组数据中的系数与指数都为零时,输入结束,按回车键,同样的方法再输入第二组数据。最后按回车键就会输出结果。6.测试结果(

8、1)输入数据:7031985170081227-9800输出操作结果:(7,0)(11,1)(22,7)(5,17)(2)输入数据:314385980021527500输出操作结果:(5,1)(5,2)(4,3)(15,5)(9,8)(3)输入数据:20325467003043845700输出操作结果:(5,0)(3,2)(4,3)(13,4)(11,7)(4)输入数据:423567980032557721000输出操作结果:(7,2)(8,5)(13,7)(9,8)(2,10)7.附录#includeusingnam

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

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

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