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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计报告一元多项式加减乘除精Word文档下载推荐.docx

1、5 程序类的说明 (1)Ploy结构声明typedef struct /顺序表结构声明 int aN;/记录多项式 int len;/记录多项式的长度Ploy; (2)term结构声明 typedef struct /项的表示 float coef; /系数 int expn; /指数term;(3)LNode结构声明typedef struct LNode term data; /term多项式值 struct LNode *next;LNode,*LinkList; /两个类型名typedef LinkList polynomail; /用带头结点的有序链表表示多项式6 模块分析 整个流程

2、图如图所示:图16.1 创建模块6.1.1、链式存储结构的一元多项式的创建程序源代码:polynomail creatpolyn(polynomail P,int m) /输入m项的系数和指数,建立表示一元多项式的有序链表P polynomail r,q,p,s,Q; int i; P=(LNode*)malloc(sizeof(LNode); r=P; for(i=0;idata.coef,&data.expn); r-next=s; r=s; next=NULL; if(P-next-next!=NULL) for(q=P-next;q!=NULL/*&q-=NULL*/;q=q-next

3、)/合并同类项 for(p=q-next,r=q;p!=NULL;) if(q-data.expn=p-data.expn) q-data.coef=q-data.coef+p-data.coef; r-next=p- Q=p; p=p- free(Q); else r=r- return P; 6.1.2、顺序存储结构一元多项式的创建void GetPloy(Ploy *A) int i,coef,ex,maxe=0; char ch;请输入每个项的系数及对应的指数,指数为负数时标志输入结束!n);N; A-ai=0;%d%dcoef,&ex); while(ex=0) if(exmaxe)

4、 maxe=ex; if(A-aex! printf(你输入的项已经存在,是否更新原数据?(Y/N) cinch; if(ch=Y|ch=y) A-aex=coef; printf(更新成功,请继续输入! else请继续输入!; else A- scanf( A-len=maxe; return ;6.2 一元多项式的加法6.2.1 链式存储两多项式相加polynomail addpolyn(polynomail pa,polynomail pb) /完成多项式相加运算,即:Pa=Pa+Pb polynomail s,newp,q,p,r; int j; p=pa- q=pb- newp=(L

5、Node*)malloc(sizeof(LNode); r=newp; while(p&q) switch(cmp(p-data,q-data) case -1: s-data.coef=p- s-data.expn=p-data.expn; r- r=s; p=p- break; case 0:data.coef+q- if(s-data.coef!=0.0) s- r-r=s; q=q- break; case 1:data.expn=q- /switch /while6.2.2 顺序存储的多项式相加void ADD(Ploy A,Ploy B,Ploy *M)/*多项式A与多项式B相加,

6、得到多项式M*/ int la=A.len,lb=B.len,i; M-len=lalb?la:lb;=la&=lb; M-ai=A.ai+B.ai; while(i case 0:data.coef-q- s- r=s;data.coef=-q- q=q- while(p) while(q) if(newp-=NULL&newp-=NULL)/合并同类项 for(q=newp-next) Q=p; free(Q); else r=r-p=p-升序 1 , 降序 2n选择:%dj); if(j=1) arrange1(newp); else arrange2(newp); return new

7、p;6.3.2顺序存储的多项式相减void SUB(Ploy A,Ploy B,Ploy *M)/*多项式A与多项式B相减(A-B),得到多项式M*/ai=A.ai-B.ai;=la) M-i+;=lb) M-ai=0-B.ai;6.4 一元多项式相乘6.4.1链式存储的多项式相乘polynomail mulpolyn(polynomail pa,polynomail pb) /完成多项式相乘运算,即:Pa=Pa*Pb int i=20,j; for(p=pa- for(q=pb- s=(LNode*)malloc(sizeof(LNode);data.coef*q-data.expn+q-

8、arrange1(newp); arrange2(newp); for(;i!=0;i-) for(q=newp- for(p=q;p- if(q- q- r=p- p- free(r); return newp;6.4.2顺序存储多项式相乘void MUL(Ploy A,Ploy B,Ploy *M)/*多项式A与多项式B相乘,得到多项式M*/ int i,j;=A.len+B.len+1;i+) M-=A.len; for(j=0;jai+j+=A.ai*B.aj;len=A.len+B.len;6.5一元多项式输出结果按项的指数排序6.5.1链式由小到大排序图6.6.1链式升序流程图vo

9、id arrange1(polynomail pa) polynomail h=pa,p,q,r; if(pa=NULL) exit(-2); for(p=pa;next); r=p; for(h=pa;h-=r;)/大的沉底 for(p=h;=r& if(cmp(p-data,p-data)=1) q=p- p-next=q- q-next=q;/r指向参与比较的最后一个,不断向前移动 6.5.2链式由大到小排序图6.6.2链式降序流程图void arrange2(polynomail pa)/小的沉底6.5.3顺序由大到小排序void PrintPloy1(Ploy A) /降序输出顺序一

10、元多项式 %dx%d ,A.aA.len,A.len); for(i=A.len-1;i=1; if(A.ai=0) ; else if(A.ai=1) printf( + x%d ,i); else if(A.ai=-1) printf( - x%d if(A.ai0) + %dx%d ,A.ai,i);- %dx%d ,-A.ai,i); if(A.a0=0) ; else if(A.a0 printf( + %d,A.a0);/打印x的0次项 - %d,-A.a0);6.5.4顺序由小到大排序void PrintPloy2(Ploy A) /升序输出顺序一元多项式 int i=0; while(A.ai=0) +i; if(i=0) ,A.ai); if(A.ai=1) x%d else if(A.ai=-1) -x%d%dx%d for(+i; else if(A.ai=1) + x%d else if(A.ai=-1) - x%d else if(A.ai1) + %dx%d else if(A.ai while(mm)你输入的输出新创一元多项式的

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

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