程序设计:数据结构实验.docVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计:数据结构实验

福建农林大学金山学院本科实验报告规范(暂行) 程序设计类 每个实验项目一份实验报告。 实验报告内容一般包括以下几个内容: 实验项目名称: 实验目的和要求: 实验内容和原理: 实验环境:本次上机实验所使用的软硬件平台。 算法描述及实验步骤:用算法、流程图或者源代码的形式表达算法设计思想与算法实现步骤。 调试过程:详细记录程序在调试过程中出现的问题及解决方法。 实验结果:记录测试数据及程序执行的结果。 总结:对上机实验结果进行分析、上机的心得体会及改进意见。 附录(调试正确的源程序清单) 说明:1、2、3、4、5属于实验预习报告的内容,每次实验需经指导教师检查签字后才能进行实验。 实验报告格式见附件二(可打印)。 每学期将拟存档的学生实验报告按课程、学生装订成册,即每个学生每门课程所有实验报告装订成一本。装订线在左侧,第一页加订实验报告封皮。 福建农林大学计算机与信息学院实验报告封皮范本见附件一。 福建农林大学计算机与信息学院实验报告范本见附件二。 附件一: 福建农林大学金山学院 (程序设计类课程) 实验报告 课程名称: 线性表及其应用 姓 名: 系: 专 业: 计算机科学与技术 年 级: 08级 学 号: 指导教师: 林敏 职 称: 讲师 2010年 4月 18 日 实验项目列表 序号 实验项目名称 成绩 指导教师 1 线性表及其应用 2 哈夫曼树及哈夫曼编码译码的实现 3 Prim最小生成树 4 实现Fibonacci检索算法 5 快速、堆、基数排序算法的设计 6 7 8 9 10 11 12 福建农林大学金山学院实验报告 系(教研室): 专业: 计算机科学与技术 年级: 08 实验课程: 姓名: 学号: 实验室号:______ 计算机号: 实验时间: 指导教师签字: 成绩: 实验一:完成多项式的相加运算(验证性、4学时) 实验目的和要求 完成多项式的相加、相乘运算。 (1)掌握线性表的插入、删除、查找等基本操作设计与实现 (2)学习利用线性表提供的接口去求解实际问题 (3)熟悉线性表的的存储方法 实验内容和原理 1.实验内容 设计一个一元多项式的简单计算程序,其基本功能有:(1)输入并建立多项式;(2)输出多项式;(3)多项式的相加运算。利用单链表实现。 2.实验原理 使用单链表实现一元多项式的存储,并实现两个一元多项式的加法运算。 实验环境 硬件:(1)学生用微机(2)多媒体教室或远程教学(3)局域网环境 软件:(1)Windows XP中文操作系统 (2)VC6.0 算法描述及实验步骤 描述: 加法:输入建立一元多项式,进行简单加法运算,输出结果;通过建立单链表A和B分别存放多项式的a和b的各项系数及指数;并且利用A使得不产生新的节点而在A中存放数据运算结果;该过程通过定义指针变量p和q使它们分别指向两个多项式的第一个节点,之后依次比较它们所指向的项的指数,即一种情况指数相等时系数相加且和不为零,修改当前p所指项的系数(和),同时删除q所指项,若和为零则同时删除p和q各自所指;情况二,p当前项指数大于q当前项,将q所指插入p所指之前作为结果项之一;情况三,p当前项指数小于q当前项,p所指作为多项式和的一项,移动p指向下一项,进行比较,在移动p,q至其中以个链空,把另一个链余下节点插在p所指之后; 乘法: 定义指针p,q指向所操作节点,通过A链表的每一项与B链表各项相乘,指数相加,系数相乘,将值赋给新节点各自域,构成一新的链表,最后返回头结点。 可这样有一个问题,即新生成的链表,即最终结果混乱,没有对数据进行过滤,相同指数项应在执行加法运算,所以可以这样实现,通过A链表的每一项与B链表各项相乘的新生成节点单独构成一链表,并将第一个链表加入另一新链表,循环此操作将后生成的链表加之先前的链表,即可实现排序问题。 1)加法算法如下: polynomial * polyadd(polynomial *A, polynomial *B) { polynomial *p,*q,*s,*r; float x; p=A-next; q=B-next; s=p; while((p!=NULL)(q!=NULL)) if((p-exp)(q-exp)) { r=q-next; q-next=p; s-next=q;

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档