一元多项式相加问题.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 一元多项式相加问题 本实验的目的是进一步熟练掌握应用链表处理实际问题的能力。 问题描述 一元多项式相加是通过键盘输入两个形如P0+ P1X1+ P2X2+…+ PnXn的多项式,经过程序运算后在屏幕上输出它们的相加和。 数据结构设计 分析任意一元多项式的描述方法可知,一个一元多项式的每一个子项都是由“系数—指数”两部分来组成的,所以可以将它抽象成一个由“系数—指数对”构成的线性表,由于对多项式中系数为0的子项可以不记录它的指数值,对于这样的情况就不再付出存储空间来存放它了。基于这样的分析,我们可以采用一个带有头结点的单链表来表示一个一元多项式。具体数据类型定义为: Typedef struct node { Float coef; //系数域 Int exp; //指数域 Int flag; //标记结点是否已经过运算加入新的链表的标志位 Struct node next; //指针域,指向下一个系数不为0的子项 }PolyNode; PolyNode *head_a , *head_b, *head_c; 这3个指针分别作为链表A、B、C的头指针。 功能(函数)设计 输入并建立多项式的功能模块 此模块要求按照指数递增的顺序和一定的输入格式输入格式输入各个系数不为0的子项的“系数—指数对”,输入一个子项建立一个相关结点,当输入结束标志的时候就停止输入,而转去执行程序下面的部分。 例如按照这些操作步骤输入多项式: 屏幕提示: 请输入第一个多项式,按照“系数,指数”的形式输入每一个子项! 1 2 -3,100 0(输入结束的条件,当系数和指数同时为0的时候认为输入结束) 请输入第二个多项式,按照“系数,指数”的形式输入每一个子项! 100,1 200,2 300,200 0 输入后程序将分别建立两个链表来描述两个一元多项式: A(X)=X+2X2-3X100 B(X)=100X+200X2+300X200 这两个多项式相加结果应为: C(X)=101X+202X2-3X100+300X200 多项式相加的功能模块 此模块根据在1中建立的两个多项式进行相加的运算,并存放在以C为头指针的一个新链表中。可以采用如下的方法进行设计: 设指针p、q、r分别指向描述多项式的链表A、B、C头部,p指针按照A中结点顺序一个一个地移动,每移动一个结点,就通过q指针的移动来寻找B中是否有与p-exp相同的。 如果有,在C中合适的位置(注意多项式存储是按照指数递增有序的)建立新结点,并做如下赋值操作: r-coef=p-coef+q-coef; r-exp=p-exp+q-exp; p-flag=1; q-flag=1;/*标志子项已参与过运算*/ p=p-next; q=head_b; 如果没有,在C中合适的位置建立新结点,并做如下赋值操作: r-coef=p-coef; r-exp=p-exp; p-flag=1; p=p-next; q=head_b; 注意:当A、B中可以相加的两项系数和为0的时候,在C中就不用分配新的空间来进行存储了。 多项式显示的功能模块 此模块用于多项式的显示,程序可以使用图形界面,通过调整指数应该出现的坐标位置来表示指数形式,如X+2X2-3X100的形式,也可以使用文本界面,用“系数-指数对”的形式表示表达式,如(1,1)、(2,2)、(-3,100)。 界面设计 注意提示用户每一步操作输入的格式和限制。指导用户按照正确的格式输入数据。 编码实现 运行与测试 测试以下数据,比较结果: (1)(2x+5x8-3.1x11)+(7- 5x8+11x9)=(-3.1x11+11x9+2x+7) (2)(x+x3)+(-x – x3)=0 (3)(x+x2+x3)+0= x+x2+x3 (4)互换上述测试数据中的前后两个多项式 不按指数递增的顺序输入多项式,验证程序的健壮性和容错性。 实验完成后的思考 实验人: 实验完成日期: 实验报告提交日期:

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档