- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计读书工程报告
黑龙江大学
《数据结构课程设计》读书报告
学 院软件学院年 级2011级专 业软件工程学 号姓 名崔雯赫日 期成 绩
黑龙江大学计算机科学技术学院
黑龙江大学软件学院
PAGE \* MERGEFORMAT - 6 -
一、基本理论阐述
在计算机及其应用的各个领域中,都回用到各种各样的数据结构,学会分析研究计算机加工对象的特性,选择和数的数据结构和存储表示,以及编制相应的实现算法,是计算机工作者不可缺少的知识。因此“数据结构”是高等院校计算机专业教学中得一门技术基础课程,在我国当前的计算机专业教学计划中,它是核心课程之一。随着我国进一步的开放,我们需要扩大国际交流,加强学习国外的现金经验。在当前形势下,“数据结构”仍具有重大意义和价值。相辅相成的关系对于培养计算机专业人才有极大的促进关系。
二、当前应用现状
“数据结构——用C语言描述”详细的介绍各种最常用的数据结构,阐述各种数据结构内涵的逻辑关系,讨论他们在计算机中得存储表示,以及在这些数据结构上的运算和时间的执行算法,对于算法的效率进行简要的分析和讨论。
全书包含十章内容:前四章主要介绍几种基本的数据结构,即:线性表、栈、队列、和串,它们均属于线性结构;第五至七章叙述非线性结构,它们是多为数组、广义表、树和图;第八、九章分别介绍数据处理中广泛使用的技术——排序与查找。第十章文件并不在教学大纲(本校)内。
全书既注重原理又重视实践,配有大量的例题和习题,解释比较详细。书中得算法均由C来描述并且能再机器上运行。对于高校计算机专业的学生使用较为合适。
三、对线性结构和最优二叉树部分的体会
数据结构课程设计目的为了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
课程设计(一)学生学籍信息管理系统
此实验主要是对于前4章的运用,对于线性结构的增、删、找、查的操作。在这就对比一下数组,线性表和链表的区别。
数组就是一个连续的存储空间,用下表进行标记区分。
线性表同样是一段连续的存储空间,但是通过相应的定义使其前后连贯,访问则是可以直接访问。
链表是动态的存储空间,并不一定是一段连续的存储空间。但访问需要顺序访问,因为用户永远不知道每一个结点的地址,也无法进行直接访问。
针对于增、删则是对于链表的操作。增加有两种方法:头插法,尾插法。顾名思义头插法就是把新的结点插入在头结点的前面,而尾插法则是把新的结点插入在头结点的后面。这两种方法各有优势。人工建栈的思想与其有相同之处。
查找在此设计中选用了起泡法排序。
最重要的算是文件的应用了。C中文件的读写在此程序中有着举足轻重的意义。对于数据的保存与删改实现了可保留化。
课程设计(二)哈弗曼编码译码器
此课程设计主要是针对于最优二叉树进行实例演练。哈弗曼编码则是通过最优二叉树为基础进而达到ASL最小。
那么在最优二叉树这个知识点上,权值可谓是比较重要的一个点了。对于权值的存储可以使用链表与数组。但通过对比,数组的存储方式更适合。通过权值的比较,进而生成序列。通过左右孩子建立最优二叉树。
四、课程设计过程中的应用与实践
课程设计(一)学生学籍信息管理系统
要求:设计一个学生信息管理系统,实现对学生基本信息的添加、删除、修改和查询等操作,要求为:
多种方式建立学生信息
浏览所有学生信息。
按照学号对所有学生信息进行升序、降序排列,并输出
按姓名、学号等方式,实现对学生信息精确查询、模糊查询,并输出屏幕显示
学生信息的插入、删除、修改。
数据的统计功能
核心代码:
void FIND(student *head) //模糊查找
if(head-name[0]==a[0]head-name[1]==a[1])
void delet(student *head) //删除
head-prior-next=head-next;
head-next-prior=head-prior;
void edit(student *head) // 编辑
void add(student *head) //增加
head-next-prior=p;
p-next=head-next;
head-next=p;
p-prior=head;
freopen(学生管理系统.txt,r,stdin);//文件
while(1)
cout查找=f 模糊查找=F 删除=
文档评论(0)