一元多项式计算(数据结构课程设计).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

shenlan118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档