- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一元多项式计算(数据结构课程设计)
《数据结构》
课程设计报告
学 号: 57 54 39 37 20 25 27
姓 名: 周田 张永鹏 武警 温凯侨 李坤
米昌华 阮健健
班 级: 10计算机科学与技术(2)班
指导教师:
成 绩:
数学与计算机科学系
课程设计基本情况
1、设计名称
一元多项式计算
2、主要功能
能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输出;
3、设计平台
电脑、Visual c++ 6.0
系统设计
1、算法思想
根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应指数相加(减),若其和(差)不为零,则构成“和(差)多项式”中的一项;对于两个一元多项式中所有指数不相同的项,则分别写到“和(差)多项式”中去。
因为多项式指数最高项以及项数是不确定的,因此采用线性链表的存储结构便于实现一元多项式的运算。为了节省空间,我采用两个链表分别存放多项式a和多项式b,对于最后计算所得的多项式则利用多项式a进行存储。主要用到了单链表的插入和删除操作。
一元多项式加法运算
它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就应该相加;相加的和不为零的话,用头插法建立一个新的节点。P的指数小于q的指数的话就应该复制q的节点到多项式中。P的指数大于q的指数的话,就应该复制p节点到多项式中。当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二个多项式用新节点产生。
一元多项式的减法运算
它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就相减;相加的和不为零的话,用头插法建立一个新的节点。p的指数小于q的指数的话,就应该复制q的节点到多项式中。P的指数大于q的指数的话就应该复制p的节点到多项式中,并且建立的节点的系数为原来的相反数;当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二个多项式用新节点产生,并且建立的节点的系数为原来的相反数。
2、概要设计
(1)主函数流程图:
(注:a代表第一个一元二次方程,b代表第二个一元二次方程)
(2)一元多项式计算算法用类C语言表示:
Typedef struct00{ //项的表示,多项式的项作为LinkList的数据元素
Float coef; //细数
Int expn;//指数
}term,ElemType;//两个类型名:term用于本ADT,ElemType为LinkList的数据对象名
Typedef LinkList polynomial: //用带表头的节点的有序链表表示多项式
//基本操作的函数原型说明
Void CreatePolyn(polynomailP);
//输入n的系数和指数,建立表示一元多项式的有序链表P 销毁一元多项式P
Void DestroyPolyn(polynomailP);
销毁一元多项式P
voidPrintPoly(polynomail P);
//打印输入一元多项式P
IntPolynLength(polynnomail P);
//返回一元多项式P中的项数
void CreatPolyn(polynomailPa.polunomailPb);
//完成多项式相加运算,即:Pa=Pa+Pb,并贤惠一元多项式Pb
voidSubtractPolyn(polunomailPapolunomailPb);
//完成多项式相减运算,即:Pa=Pa-Pb,并销毁一元多项式Pb
//基本操作的算法描述
Int cmp(tem a,temp b);
//依a的指数值(或=)(或b的住数值,分别返回-1、0和+1
Void CreatePolyn(polynomailP,int m){
//输入m项的系数和指数,建立表示一元多项式的有序链表P
InitList(P); h=GetHead(P);
E.coef=0
文档评论(0)