版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一元多项式相加问题地实验报告材料 实用文案实用文案标准文档标准文档一元多项式相加问题一、问题描述通过键盘输入两个形如 Po + P 1_1 +P 2_2+ P n_的多项式,经过程序运后在屏幕上输出它们的相加和。二、数据结构设计一个一元多项式的每一个子项都由“系数 -指数”两部分组成,因此可将其抽象为包含系数coef、指数e_p、指针域ne_t构成的链式线性表。将两 个多项式分别存放在两个线性表中,然后经过相加后将所得多项式存放在一 个新的线性表中,但是不用再开辟新的存储空间,只依靠结点的移动来构成 新的线性表,期间可以将某些不需要的空间回收。基于这样的分析p ,可以采 用不带头结点的单链表来
2、表示一个一元多项式。具体数据类型定义为:struct nodefloat coef;/ 系数域int e_p;/指数域struct node _n e_t;三、功能函数设计1、输入多项式的系数和指数初始化多项式的功能模块具体函数为node _in_fun此函数的处理较为全面,要求用户按照指数递增的顺序和一定的输入格式输入各个系数不为0的子项,输入一个子项建立一个相关结点,当遇到输入结 束标志时停止输入。关键步骤具体如下:控制用户按照指数递增的顺序输入r=a;while(r!=q->n e_t)if(ye_p)coutvv“请按照指数递增顺序输入,请重新输入”;cin> >_&
3、gt;>y;break;r=r- >n e_t;从头开始遍历,若遇到目前输入的指数不是最大时,就跳出循环,让用户重新输入。当输入的系数为零时,不为其分配存储空间存储while(_=0) cin> >_>>y; continu e;即若系数为0,不再进行动态分配并新建结点,而是重新提取用户输入的下一 个子项的系数和指数,利用continue进入下一次循环。初始化完成后将最后一个结点的指针域置为空,并返回该新建链表的首地址。if(q!二NULL)q->n e_t二NULL;return a;动态分配空间新建结点存储系数和指数的代码如下:p=new node
4、;p->coef=_;p->e_p=y;if(a=NULL) a=p;else q->n e_t=p;q=p;2、多项式显示功能函数由于系数有正有负,故采取如下处理:对于正数,输出时在前面加“ + ”,头指针除外;对于负数,直接将系数输出即可,即:p=a;while(p)if(p=a) coutcoefvv“_A”vvp->e_p;else if(p->coefcoef>0) p=p->n e_t;输出的多项式的形式形如:coutcoefcoefcoef>0) p=p->n e_t;输出的多项式的形式形如:Pi_AI+P 2_A2+ +Pn
5、_An3、多项式相加的功能函数c为头指函数为:c为头指此函数根据在1中初始化的两个多项式进行相加运算,并存放在以针的一个新链表中 设指针p,q,r分别指向描述多项式的链表 a,b,c的头部,其中将a也赋给c。p,q两个指针同时移动,并根据 p,q两结点对应的指数的大小采取不同的操 作。当(p->e_p)v(q->e_p)时,操作如下:w=p;p=p->n e_t;r->n e_t=w;r=w;即定义一个结点w,将结点p赋给它,然后将p结点后移,指向a中下一个 待处理结点,然后将w移动到新生成链表c的尾结点的后面,最后将w赋给 r,使得r仍指向链表c的尾结点。当p->
6、;e_q->e_p时,采取如下操作:w=q;q二q->n e_t;r->n e_t=w;r=w;即此时将q赋给w,然后使q结点指向链表b中下一个待处理结点,然后将w 移动到新生成链表c的尾结点的后面,最后将 w赋给r,使得r仍指向链表c 的尾结点。当p->e_p=q->e_p时,定义一个float类型的变量_,当_不为0时,采取如下操作:p->coef=_;W=p;p=p->n e_t;r->n e_t=w;r=w;w=q;q二q->n e_t;delete w;即将_的值赋给p的系数域,之后将结点p赋给w,然后将p结点后移,指 向a中下一
7、个待处理结点,然后将 w移动到新生成链表c的尾结点的后面, 最后将w赋给r,使得r仍指向链表c的尾结点。同时,将q的内存空间释放, 并使得q指向b中下一个待处理结点。当_为0时,采取如下操作:w=p;p=p->n e_t;delete w;w=q;q二q->n e_t;delete w;即将pq的空间释放,并分别使其指向各自链表中下一个待处理结点。当上面的循环进行完后,至少有一个链表已被遍历完,然后只需将另一个 链表剩余的所有结点都移动到c中即可。if(p!二NULL)while(p) w=p;p=p->n e_t;r->n e_t=w;r=w;if(q!二NULL)w
8、hile(q)w=q;q二q->n e_t;r->n e_t=w;r=w;最后将c中的最后一个结点的指针域置为空,并返回c的地址r->n e_t=NULL;return c;4、主函数功能设计采用循环的形式可以多次进行两个多项式的初始化和求和。四、界面设计提示用户进行每一步操作以及每一步输出的内容,界面简明清晰五、运行与调试元多项式相加问题请输入第一个多项式的系数和指数TOC o ”1-5“ h z 12-0.2435aa 0您所输入的多项式为请输入第二个多顶式的系数和指数TOC o ”1-5“ h z 3203-35_60.7 B0 0石所输入的多顶式为3_”2-3_“5
9、_5_A6 +0.初始化完毕,两多顶式相加得4_A2-0_2_A4_5_A6+7_8TOC o ”1-5“ h z 址绫初始比多项衣请输人1,停止请输入D1元多顶式相加问题请输入第一个多顶式的系数和指数1 133备按禺指数递増顺序输人请重新输入44057?芬所输入的多项式为1+4m_a4+7_a7请输入第二个多项式的系数和指数2 2TOC o ”1-5“ h z -330 6-7798 0您所输入的多顶式为2 _2 -3 _ -7_ A7+9 _初始化完毕,两多项式相加得1_ka1+4ma4+9_a9继续初始化多项式请输入丄?停止请输人00Pi#;tss a.rty ke呼 to contin
10、ue六、代码#in clude struct nodefloat coef;/ 系数域int e_p;/指数域struct node _n e_t;;node _in_funnode _p,_a,_q,_r;a=q=NULL;float _;int y;cin> >_?y;while(_!=O|y!=O)while(_=0)cin> >_?y;if(_=0y=0)break;elsecon ti nu e;if(_=0 y=0)break;p=new node;p_>coef=_;p->e_p=y;if(a=NULL) a=p;else q->n e_
11、t=p;q=p;cin> >_?y;if(_=0 y=0)break;r=a;while(r!=q->n e_t)if(ye_p)cout >_?y;break;r=r->n e_t;if(_=O y=0) break;if(q!=NULL) q-> ne_t=NULL;return a;void out_fun(node _a)node _p;p=a;,请重新输入,请重新输入“;if(p=a)coutcoefe_p;else if(p->coefcoefe_p;else if(p->coefcoef>0)coutcoefe_p;p=p-&
12、gt;n e_t;coute_p)e_p)w=p;p=p->n e_t;r->n e_t=w;r=w; else if(p->e_p=q->e_p) _=p_>coef+q_>coef;if(_!=O)p->coef=_; w=p;p=p->n e_t; r->n e_t=w; r=w;w=q; q=q_>n e_t; delete w;else if(_=0)w=p;p=p->n e_t; delete w;w=q; q=q_>n e_t; delete w;else if(p_>e_q_>e_p) w=q;
13、q=q_>n e_t;r->n e_t=w; r=w;if(p!=NULL)while(p)w=p;p=p->n e_t;r->n e_t=w; r=w;if(q!=NULL)while(q)w=q;q=q_>n e_t;r->n e_t=w;r=w;r->n e_t=NULL;return c;int mai nnode _a,_b,_c;int n=1;while( n)-”<<endl;“<<e ndl;”<<e ndl;cout<<endl<<“ -”<<endl;“<<e ndl;”<<e ndl;cout<<e ndl<<“请输入第一个多项式的系数和指数a=in_fu n;cout<<e ndl<<”您所输入的多项式为 “<<e ndl;out_fu n( a);cout<<e ndl<<”请输入第二个多项式的系数和指数b=in_fu n;cout<<e ndl<<“您所输入的多项式为 ”<<e ndl;out_fun (b);cout<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招聘6人!共和根磐久美藏医院制剂室招聘人员笔试参考试题及答案详解
- 2026中国邮政集团有限公司临沂市分公司社会招聘笔试参考题库及答案详解
- 2026浙江温州医科大学附属第一医院肿瘤放化疗科技师招聘1人笔试参考试题及答案详解
- 2026浙江丽水华数广电网络有限公司招聘6人笔试备考题库及答案详解
- 2026年赤峰市松山区街道办人员招聘考试备考试题及答案解析
- 2026年宁波市宁海县教育局下属事业单位面向社会公开招聘教师25人笔试备考试题及答案详解
- 四川九洲投资控股集团有限公司人力资源部2026届春季校园招聘笔试备考试题及答案详解
- 2026年广州市花都区街道办人员招聘笔试模拟试题及答案解析
- 2026湖南长沙医学院宣传统战部招聘2人笔试参考题库及答案详解
- 2026年济南市历下区幼儿园教师招聘笔试参考试题及答案解析
- 重症监护室的营养支持
- 压力容器焊工证考试题及答案
- 实施指南(2025)《DL-T5187.3-2012 火力发电厂运煤设计技术规程第 3 部分》
- 教改项目结项汇报
- 网络与数据安全培训课件
- DB65-T 4877-2024 学校食堂“互联网+明厨亮灶”建设规范
- 清宫寿戏《双福寿》文本考证与演出演变研究
- 企业安全生产总体和年度安全生产目标
- 特殊困难老年人家庭适老化改造工作台账
- 奥林巴斯相机μ-840说明书
- 【中考真题】2024年山东省青岛市中考数学试题(含解析)
评论
0/150
提交评论