数据结构实验报告 一元多项式.doc

数据结构实验报告 一元多项式.doc

ID:6456593

大小:97.00 KB

页数:20页

时间:2018-01-14

数据结构实验报告 一元多项式.doc_第1页
数据结构实验报告 一元多项式.doc_第2页
数据结构实验报告 一元多项式.doc_第3页
数据结构实验报告 一元多项式.doc_第4页
数据结构实验报告 一元多项式.doc_第5页
资源描述:

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

1、一元多项式一、需求分析实现实系数一元多项式的创建,打印以及两个一元多项式的加、减、乘运算。(1)程序所能达到的功能:a.实现一元多项式的输入;b.实现一元多项式的输出;c.计算两个一元多项式的和并输出结果;d.计算两个一元多项式的差并输出结果;e.计算两个一元多项式的积并输出结果。(2)输入的形式和输入值的范围:输入要求:分行输入,每行输入一项,先输入多项式的指数,再输入多项式的系数,以00为结束标志,结束一个多项式的输入。输入形式:23-12301200输入值的范围:系数为int型,指数为float型。(3)输出的形式:要求:第一行输出多项式1;第二行输出多项式2;

2、第三行输出多项式1与多项式2相加的结果多项式;第四行输出多项式1与多项式2相减的结果多项式;第五行输出多项式1与多项式2相乘的结果多项式注:多项式的每一项形如:2.0x^3,注意指数应保留一位小数;多项式按照升幂次序排列;系数为1的非零次项应略去系数,系数为0的项不能出现在结果中;指数为0的项应只输出系数;多项式的第一项系数符号为正时,不要输出“+”,其他项要输出“+”,“-”符号。-3.0x^-1-6.0x-2.0x^2-9.0x^3-4.0x^4-6.0x^6二、概要设计(1):程序实现a.功能:将要进行运算的二项式输入输出;b.数据流入:要输入的二项式的系数与指

3、数;c.数据流出:合并同类项后的二项式;d.程序流程图:二项式输入流程图;e.测试要点:输入的二项式是否正确,若输入错误则重新输入。开始申请结点空间输入二项式各项的系数x,指数y输入二项式的项数输出已输入的二项式是否输入正确合并同类项结束是否(2):数据类型ADTPolynomial{数据对象:D={ai

4、ai∈TermSet,i=1,2,…,m,m≥0TermSet中的每个元素包含一个表示系数的实数和表示指数的整数}数据关系:R1={

5、ai-1,ai∈D,且ai-1中的指数值<ai中的指数值,i=2,…,n}基本操作:sort(Polyn&h);/

6、/对多项式进行排序print(Polynh);//输出多项式delZeroCoef(Polyn&h);//判断系数为零的情况merge(Polyn&h);//合并指数相同的项createList();//创建多项式addPoly(Polynh1,Polynh2);//多项式相加subPoly(Polynh1,Polynh2);//多项式相减multPoly(Polynh1,Polynh2);//多项式相乘}ADTPolynomial三、详细设计(1):存储结构一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存

7、放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。(2):数据链表由于采用链表的方法,我们可以建立3条链;一条用于存放多项式HA,一条用于存放多项式HB,还有一条用于存放新形成的HC。此外,我们的程序应具备以下几个功能:建立链表,撤销链表,打印链表,按要求插入一个新的结点,复制链表;为了使上面程序结构分析进一步细化,为了使程序结构更加清晰,我们可以把上面的内容都编写成函数形式。1、建立链表该程序建立链表的函数与大多数建立

8、链表的操作基本一致,但是由于实体是一元多项式的关系。我们更希望,在处理客户输入的数据的同时,能对数据进行适当的处理。也就是数学上所说的,“对一元多项式进行化简,并按照降幂排序。”由于在前面的练习中,我们得知,在链表中插入一个结点的函数,具有对链表的成员进行排序与合并的功能。如此一来,我们可以巧妙地处理,在建立链表的同时,调用”在链表中插入一个结点的函数”,对新建立的链表进行化简。该函数的算法描述如下;1)声明指针变量,并作为头指针的指针变量赋初值NULL;2)创建一个新的结点,并输入链表的信息;3)若输入的系数值与函数值同不为0时,调用”在链表中插入一个结点的inse

9、rt函数”,将结点插入链表中;(注:这里建立链表的函数与以往的不同,我们是通过假想有一条空链,不断地调用insert函数来实现建立链表的功能。简言之;链表中成员的链接全都靠insert函数来实现,而该函数仅仅是不断地提供建立链表所要的数据罢了。)4)若还要继续插入结点,转到步骤2继续进行;1)否则,程序结束,把头指针返回主程序。2、撤销链表撤销链表是为了把链表所占用的地址回收起来,防止造成浪费。我们该程序可以采用从链表的始端逐步销去结点。在这个过程中,我们需要链表的头地址作为形式参数,还需要建立一个指针用来指向新头地址。该函数的算法描述如下:1)指针

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

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

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