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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计一元多项式加法减法乘法运算的实现.docx

1、数据结构课程设计一元多项式加法减法乘法运算的实现1.一元多项式加法、减法、乘法运算的实现设计内容及要求1)设计内容(1)使用顺序存储结构实现多项式加、减、乘运算。例如:,求和结果:(2)使用链式存储结构实现多项式加、减、乘运算,求和结果:2)设计要求(1)用C语言编程实现上述实验内容中的结构定义和算法。(2)要有main()函数,并且在main()函数中使用检测数据调用上述算法。(3)用switch语句设计如下选择式菜单。 *数据结构综合性实验* *一、多项式的加法、减法、乘法运算* * 1.多项式创建 * * 2.多项式相加 * * 3.多项式相减 * 4.多项式相乘 * 5.清空多项式 *

2、 0.退出系统 * 请选择(05) *请选择(0-5):数据结构设计根据下面给出的存储结构定义:#define MAXSIZE 20 xpn!= i+; if(ip-last) return 0; else return 1; int Insert_ElementByOrder(polynomial*p,term x) int j; if(PloynStatus(p)=-1) return 0; if(p-last=MAXSIZE-1) coutThe polym is full!last;while(p-termsj.expn=0) p-termsj+1=p-termsj; j-; p-te

3、rmsj+1=x; p-last+; return 1;int CreatePolyn(polynomial*P,int m) float coef; int expn; term x; if(PloynStatus(P)=-1) return 0; if(mMAXSIZE) printf(顺序表溢出n); return 0; else printf(请依次输入%d对系数和指数.n,m); for(int i=0;i return; else if return; else return=; polynomial*addPloyn(polynomial*p1,polynomial*p2) in

4、t i,j,k; i=0; j=0; k=0; if(PloynStatus(p1)=-1)|(PloynStatus(p2)=-1) return NULL; polynomial*p3=Init_Polynomial(); while(ilast & jlast) switch(compare(p1-termsi,p2-termsj) case: p3-termsk+=p1-termsi+; p3-last+; break; casetermsk+=p2-termsj+; p3-last+; break; case=: if(p1-termsi.coef+p2-termsj.coef!=0

5、) p3-termsk.coef=p1-termsi.coef+p2-termsj.coef; p3-termsk.expn=p1-termsi.expn; k+; p3-last+; i+; j+; while(ilast) p3-termsk+=p1-termsi+; p3-last+; return p3;polynomial*subStractPloyn(polynomial*p1,polynomial*p2) int i; i=0; if(PloynStatus(p1)!=1)|(PloynStatus(p2)!=1) return NULL; polynomial*p3=Init_

6、Polynomial(); p3-last=p2-last; for(i=0;ilast;i+) p3-termsi.coef=-p2-termsi.coef; p3-termsi.expn=p2-termsi.expn; p3=addPloyn(p1,p3); return p3;polynomial*mulitPloyn(polynomial*p1,polynomial*p2) int i; int j; int k; i=0; if(PloynStatus(p1)!=1)|(PloynStatus(p2)!=1) return NULL; polynomial*p3=Init_Polyn

7、omial(); polynomial*p=new polynomial*p2-last+1; for(i=0;ilast;i+) for(k=0;klast;k+) pk=Init_Polynomial(); pk-last=p1-last; for(j=0;jlast;j+) pk-termsj.coef=p1-termsj.coef*p2-termsk.coef; pk-termsj.expn=p1-termsj.expn+p2-termsk.expn; p3=addPloyn(p3,pk); return p3;void printPloyn(polynomial*p) int i;

8、for(i=0;ilast;i+) if(p-termsi.coef0 & i0) cout+termsi.coef; else couttermsi.coef; coutxtermsi.expn; coutendl;void menu() couttt*数据结构综合性实验*endl; couttt*一、多项式的加、减、乘法运算*endl; couttt* 1.多项式创建 *endl; couttt* 2.多项式相加 *endl; couttt* 3.多项式相减 *endl; couttt* 4.多项式相乘 *endl; couttt* 5.清空多项式 *endl; couttt* 0.退出系

9、统 *endl; couttt* 请选择(0-5) *endl; couttt*endl;void main() int sel; polynomial*p1=NULL; polynomial*p2=NULL; polynomial*p3=NULL; while(1) menu(); coutsel; switch(sel) case 1: p1=Init_Polynomial(); p2=Init_Polynomial(); int m; printf(请输入第一个多项式的项数:n); scanf(%d,&m); CreatePolyn(p1,m); printf(第一个多项式的表达式为p1

10、=); printPloyn(p1); printf(请输入第二个多项式的项数:n); scanf(%d,&m); CreatePolyn(p2,m); printf(第二个多项式的表达式为p2=); printPloyn(p2); break; case 2: printf(p1+p2=); if(p3=subStractPloyn(p1,p2)!=NULL) printPloyn(p3); break; case 3: printf(np1-p2=); if(p3=subStractPloyn(p1,p2)!=NULL) printPloyn(p3); break; case 4: pri

11、ntf(np1*p2=); if(p3=mulitPloyn(p1,p2)!=NULL) printPloyn(p3); case 5: Reset_Polynomial(p1); Reset_Polynomial(p2); Reset_Polynomial(p3); break; case 0: return; return;程序执行结果2.迷宫问题实现设计内容及要求1)设计内容以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的道路,或得出没有通路的结论。2)设计要求(1)用C语言编程实现上述实验内容中的结构定义和算法;(2

12、)要有main()函数,并且在main()函数中使用检测数据调用上述算法;数据结构设计根据以上问题给出存储结构定义:typedef struct =0; move0.y=1; move1.x=1; move1.y=1; move2.x=1; move2.y=0; move3.x=1; move3.y=-1; move4.x=0; move4.y=-1; move5.x=-1; move5.y=-1; move6.x=-1; move6.y=0; move7.x=-1; move7.y=1;void printS(dataType temp) int static i=0; printf(第%d

13、次入栈元素为:,+i); printf(%d,%d)%dn,;int find_Path(int mazeM+2N+2,item move8) SeqStack*s=InitSeqStack(); dataType temp; int x,y,d,i,j; =1; =1; =-1; Push(s,temp); while(!StackEmpty(s) Pop(s,&temp); x=; y=; d=+1; while(d8) i=x+moved.x; j=y+moved.y; if(mazeij=0) =x; =y; =d; Push(s,temp); printS(temp); x=i; y

14、=j; mazexy=-1; if(x=M & y=N) print_Path(s); return 1; else d=0; else d+; return 0;void print_Path(SeqStack*s) printf(迷宫路径为:n); for(int i=0;itop;i+) printf(%d,%d)%d-,s-datai.x,s-datai.y,s-datai.d); printf(%d,%d)%dn,s-datai.x,s-datai.y,s-datai.d);void main() init_move(move); if(!find_Path(maze,move) p

15、rintf(迷宫路径不存在);程序执行结果总 结通过这本次课程设计,加深了我对数据结构这门课程知识的理解,使我更熟练掌握实践技巧。我通过这一周的时间在选题,编译调试,查阅相关文献资料,认真思考,敢于实践操作,攻克了一个个错误,完成了此次课程设计。在“一元多项式的加、减、乘法运算实现”中主要使用了线性表的基本操作,使我更进一步理解线性表的顺序存储和链式存储结构,熟练线性表的插入、删除等基本功能;“迷宫问题的实现”又是栈的典型实际应用,在编译调试此程序更突出了栈的特性。通过实际应用的程序编译来巩固自己数据结构的相关知识,更能加深记忆。这次课程设计,对我的程序设计和调试能力有很大的提升。这次课程设计使我深刻认识到自己专业知识的匮乏,程序设计的能力的不足。通过这次的课程设计也提高了我的独立思考、敢于实践操作能力,弥补了我的部分专业知识的不足之处。我的程序设计思想和代码的编写和调试能力在此次课设期间有所提高。这样一种更贴切实际的课程设计,更能提高我的学习效率,让我真正理解这门课程的知识要点。最后,非常感谢雷老师在平时以及在本次课设中给予我们的耐心的教导与帮助。参考文献【1】数据结构(C语言版) 主编:严蔚敏 吴伟民【2】C程序设计 主编:谭浩强【3】数据结构(C语言版)例题详解与课程设计指导 主编:秦锋 袁志祥【4】二级C语言程序设计 主编:刘文辉

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

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