ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:20.12KB ,
资源ID:15810012      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15810012.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构C语言一元稀疏多项式计算器Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构C语言一元稀疏多项式计算器Word文档下载推荐.docx

1、指数expn指针域next运用尾插法建立两条单链表,以单链表polyn p和polyn h分别表示两个一元多项式a和b,a+b的求和运算等同于单链表的插入问题(将单链表polyn p中的结点插入到单链表polyn h中),因此“和多项式”中的结点无须另生成。为了实现处理,设p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项,由此得到下列运算规则: 若p-expnexpn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。 若p-expn=q-expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。 若p-expnexpn,则结点q所指的结点应是“和多项

2、式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。二、概要设计为实现上述程序的功能,应以带头结点的单链表表示多项式。为此,需要一个抽象数据类型:单链表。2.1单链表的抽象数据类型定义ADT LinkList数据对象:D=ai|aiTermSet,i=1,2,m,m0 TermSet中的每个元素包含一个表示系数的实数和表示指数的整数数据关系:R1=ai-1,aiD且ai-1中的指数值next=null;return ture;void FreeNode(LinkList & /释放p所指结点free(q1); q1=q2; q2=q2-next;3.2单链表的基本操作设置如下

3、:void Insert(LinkList p,LinkList h); /将节点p插入到多项式链表hLinkList CreateLinkList(LinkList head,int m);/建立一个头指针为head、项数为m的一元多项式,并返回该多项式的头结点;/若分配空间失败,则返回FALSEvoid DestroyLinkList(LinkList p);/销毁多项式pvoid PrintLinkList(LinkList P);/输出构造的一元多项式PStatus compare(LinkList a,LinkList b) /节点进行比较: a的指数 b的指数 return 1;

4、a的指数=b的指数 return 0;a的指数next=NULL; for(i=0;ib-expn) return 1; else if(!a|a-expn) return -1; else return 0;a&b) return -1;/a多项式已空,但b多项式非空 else return 1;/b多项式已空,但a多项式非空/ comparefloat ValueLinkList(LinkList head,int x) /输入x值,计算并返回多项式的值 for(p=head-p;p=p-next) t=1; for(i=p-expn;i!=0;) / i 为指数的系数 pow(x,i)

5、if(icoef*t; return sum;/ ValueLinkListLinkList MultiplyLinkList(LinkList pa,LinkList pb)/求解并建立多项式a*b,返回其头指针 LinkList qa=pa- LinkList qb=pb- hf=(LinkList)malloc(sizeof(struct LNode);/建立头结点 hf- for(;qa;qa=qa-next) for(qb=pb-qb;qb=qb-next) pf=(LinkList)malloc(sizeof(struct LNode); pf-coef=qa-coef*qb-co

6、ef;expn=qa-expn+qb- Insert(pf,hf); /调用Insert函数以合并指数相同的项return hf;/ MultiplyLinkList3.3主函数和其他函数的伪码算法void main()/主函数Initiation(); /多项式初始化 PrintCommand();/输出菜单 while(1) /循环一直为真 知道选择j|J即退出命令时,程序退出n请选择操作:);%cflag); Interpter(flag); /具体的操作命令/mainvoid Initiation()请输入a的项数:%dm); pa=CreateLinkList(pa,m);/建立多项式a请输入b的项数:n); pb=CreateLinkList(pb,n);/建立多项式bprintf(多项式已创建n/ Initiationvoid PrintCommand() /输出菜单显示键入命令的提示信息;Printf(A,B,C,D,E);/ PrintCommandvoid Interpter(char flag) switch(flag) case A: case a PrintLinkList(pa); break;case Bb PrintLinkList(pb);caseC casec AddLinkList(pa,pb)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1