- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告一元多项式计算VS迷宫求解
课程设计报告一元多项式计算VS迷宫求解 系 别: 专业年级:学生姓名: 学 号:任课老师: 二 ○ 一 二 年 三 月一、题目内容描述(一)、实验二 一元多项式计算**1、任务:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减、相乘,并将结果输出;2、在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;(二)、实验四 迷宫求解1、任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;2、要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。二、解题分析(一)、一元多项式计算分析:1、一元稀疏多项式简单计算器的功能是:1.1 输入并建立多项式;1.2 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,………cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列; 1.3 求多项式a、b的导函数;1.4 计算多项式在x处的值;1.5多项式a和b相加,建立多项式a+b;1.6 多项式a和b相减,建立多项式a-b。2、设计思路:2.1 定义线性表的动态分配顺序存储结构;2.2 建立多项式存储结构,定义指针*next2.3利用链表实现队列的构造。每次输入一项的系数和指数,可以输出构造的一元多项式2.4演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;最后根据相应的输入数据(滤去输入中的非法字符)建立的多项式以及多项式相加的运行结果在屏幕上显示。多项式显示的格式为:c1x^e1+c2x^e2+…+cnx^en3、设计思路分析:要解决多项式相加,必须要有多项式,所以必须首先建立两个多项式,在这里采用链表的方式存储链表,所以我将结点结构体定义为:序数coef指数expn指针域next运用尾插法建立两条单链表,以单链表polyn p和polyn h分别表示两个一元多项式a和b,a+b的求和运算等同于单链表的插入问题(将单链表polyn p中的结点插入到单链表polyn h中),因此“和多项式”中的结点无须另生成。为了实现处理,设p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项,由此得到下列运算规则:① 若p-expnq-expn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。② 若p-expn=q-expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。③ 若p-expnq-expn,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。(二)、迷宫求解分析:1、 迷宫形状由0表示可通过,用1表示是障碍。为方便用0,1输入。并把迷宫图形保存在二维数组grid中。而打印出的图形中 ‘0’表示能过‘1’表示障碍。2、 对探索过的位置加以标记,输入起点终点后可由相应函数来完成搜索。到目的点就可退出该调用程序。把每步路径保存到二维数组中,通过反向进行退步可把完整的路径保存在相应结构体数组内,通过标记的路径可将串作相应的改变就能输出的带路径的图。3、根据二维字符数组和加标记的位置坐标,输出迷宫的图形。4、 该程序在获取迷宫图结构后,可对迷宫任意入口到出口的路线进行搜索,主要由广度优先搜索完成该操作。它可以是30以内大小的迷宫,有自行提供的迷宫图,本课程设计是以二维数组作为迷宫的存储结构。而广度优先搜索用的队列一步一步完成的,从而找到的是最短路径,并能输出打印。三、所用数据结构的描述(用伪代码)(一)、一元多项式计算:1、元素类型、结点类型和指针类型:typedef struct Polynomial{float coef; //系数 int expn; //指数 struct Polynomial *next;}*Polyn,Polynomial;2、建立一个头指针为head、项数为m的一元多项式, 建立新结点以接收数据, 调用Insert函数插入结点: Polyn CreatePolyn(Polyn head,int m){ int i; Polyn p; p=head=(Polyn)malloc(sizeof(struct Polynomial)); head-next=NULL; for(i=0;im;i++){p=(Polyn)malloc(sizeof(struct Polynomial)); printf(请输入第%d项的系数与指数:,i+1); scanf(%f
您可能关注的文档
- 认识实习日志及报告.doc
- 认识起重机.doc
- 让主管需要你.ppt
- 让客户回头的客户服务6大宝典 培训课件.ppt
- 让工作变简单的10种方法 培训课件.ppt
- 让平衡计分卡发挥效用 培训课件.ppt
- 让牙齿变白的生活小细节.doc
- 让每一个孩子懂得性健康.ppt
- 让教学富有思想的智慧 培训课件.ppt
- 让迅雷离线下载也支持批量通配符.doc
- (5篇)乡村振兴工作总结精选.docx
- (3篇)2023年度民主生活会和组织生活会对照整改材料.docx
- (6篇)在关于开展学习“一带一路”倡议提出十周年的研讨交流发言材合集.docx
- 某县委在市委第一季度经济运行分析调度会上的表态发言材料.docx
- 区委书记在2025年区党风廉政建设大会上的讲话发言材料.docx
- 廉政党课讲稿:以扎实开展作风建设学习教育为契机,持续完善全面从严治党体系.docx
- 县委副书记在县委办公室新入职干部座谈会上的讲话发言材料.docx
- 县长在县生态文明建设和生态环境保护委员会2025年第一次会议上的讲话发言材料.docx
- 坚定信仰,加强基层党组织建设党课讲稿4篇.docx
- 在2025年干部任职宣布大会上的讲话发言材料.docx
文档评论(0)