- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)互换上述测试数据中的前后两个多项式
不按指数递增的顺序输入多项式,验证程序的健壮性和容错性。
实验完成后的思考
实验人:
实验完成日期:
实验报告提交日期:
您可能关注的文档
- 养老公寓开发案例研究.doc
- 养老养生地产模式经典研究.doc
- 养老院项目投资商业计划书.doc
- 养老院养老公寓制度 养老护理员培训.doc
- 养老政策汇编_养老院养老公寓投资分析报告.doc
- 养男育女调不同.doc
- 养生与保健 PPT课件.ppt
- 养殖业项目可行性研究报告.doc
- 氧化风机检修作业指导书.doc
- 氧化还原反应第一课时教学设计.doc
- 甘肃省白银市会宁县第一中学2025届高三3月份第一次模拟考试化学试卷含解析.doc
- 2025届吉林市第一中学高考考前模拟生物试题含解析.doc
- 四川省三台县芦溪中学2025届高三下第一次测试生物试题含解析.doc
- 2025届江苏省启东市吕四中学高三适应性调研考试历史试题含解析.doc
- 浙江省宁波市十校2025届高三二诊模拟考试历史试卷含解析.doc
- 甘肃省甘南2025届高考生物必刷试卷含解析.doc
- 河北省石家庄市一中、唐山一中等“五个一”名校2025届高考历史四模试卷含解析.doc
- 江西省南昌市进贤一中2025届高考生物考前最后一卷预测卷含解析.doc
- 甘肃省白银市会宁县第四中学2025届高三第二次模拟考试历史试卷含解析.doc
- 宁夏银川市宁夏大学附属中学2025届高考化学押题试卷含解析.doc
文档评论(0)