网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构一元多项式计算 课程设计.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构一元多项式计算 课程设计

1?  HYPERLINK / \t _blank 课程设计的目的 (1)掌握算法的编写方法。 (2)掌握类C语言的算法转换成C程序并上机调试的基本方法。 (3)设计一个C语言程序,该程序具有能够按照指数降序排列建立并输出多项式,  完成两个多项式的相加、相减,并将结果输入的功能。 ? 2? 设计方案论证 2.1 问题描述 用C语言编写一段程序,该程序的功能相当于一个一元多项式计算器。它能够实现按照指数降序排列建立并输出多项式,并且能够完成两个多项式的相加、相减的运算和将其结果输入的功能。 ? 2.2 数据结构设计 此程序的数据结构是选择用带表头结点的单链表存储多项式。虽然一元多项式可以用顺序和链式两种存储结构表示,但顺序结构的最大长度很难确定。比如当多项式的系数较大时,此时就会浪费了巨大的存储空间,所以应该选择用链式存储结构来存储一元多项式。单链表的结构体可以用来存储多项式的系数,指数,下一个指针3个元属,这样便于实现任意多项式的加法,减法运算。 2.3 设计思路及算法设计 图1 功能模块图 ? ? 2.3.2功能模块图思路设计 (1)一元多项式的建立 输入多项式采用头插法的方式,输入多项式中一个项的系数和指数,就产生一个新的节点,建立起它的右指针,并用头节点指向它;为了判断一个多项式是否输入结束,定义一个结束标志,当输入非0时就继续,当输入0时,就结束一个多项式的输入。 (2)显示一元多项式 如果系数是大于0的话就输出+系数x^指数的形式;如果系数是小于0的话就输出系数x^指数的形式;如果指数为0的话,直接输出系数;如果系数是1的话就直接输出+x;如果系数是-1的话就直接输出-x。 (3)一元多项式加法运算 它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就应该相加;相加的和不为0的话,用头插法建立一个新的节点。p的指数小于q的指数的话,就应该复制q节点到多项式中。p的指数大于q的指数的话,就应该复制p节点到多项式中。当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二多项式用新??点产生。 (4)一元多项式减法运算 它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就应该相减;相加的和不为0的话,用头插法建立一个新的节点。 p的指数小于q的指数的话,就应该复制q节点到多项式中。p的指数大于q的指数的话,就应该复制p节点到多项式中,并且建立的节点的系数为原来的相反数;当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二个多项式用新节点产生,并且建立的节点的系数为原来的相反数。 (5)帮助 ???? 提供正确的输入多项式的方法,以及程序中多项式是如何表示的。 ? 2.3.3 算法设计 ? (1)结构体的定义 ???? typedef struct pnode {int coef; ?int exp; ?struct pnode *next; ?}pnode; ? (2)一元多项式的输入?????????????????????????????? ???? pnode * creat() ?{ ?head=(pnode *)malloc(sizeof(pnode)); ?rear=head; ?while(n!=0) ? ? ? {s=(pnode *)malloc(sizeof(pnode)); ?s-coef=n; ?s-exp=m; ?s-next=NULL; ?rear-next=s; ?rear=s; ???? } ?head=head-next; ?return head; ?} ? (3)显示一元多项式 void display(pnode *head) ???? {;int one_time=1; p=head; ???? while(p!=NULL) ???? { ????? if(one_time==1) ????? {if(p-exp==0) ?????? printf(%d,p-coef); ?????? else if(p-coef==1||p-coef==-1) ?????? printf(x^%d,p-exp); ????? ?else if(p-coef0) ?????? printf ?????? one_time=0; ????? ?} ????? else{ ?????? if(p-exp==0) ????? {if(p-coef0) ?????? printf(+%d,p-coef); ?????? } ?????? else if(p-coef==1) ?????? p

文档评论(0)

weizhent2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档