数据结构与算法是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且也已经成为其他理工专业的热门选修课。随着高级语言的发展,数据结构在计算机的研究和应用中已展现出强大的生命力,它兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。通过学习,先报告如下:
一、数据结构与算法知识点
本学期学的《数据结构与算法》这本书共有十一个章节:
第一章的内容主要包括有关数据、数据类型、数据结构、算法、算法实现、C语言使用中相关问题和算法分析等基本概念和相关知识。其中重点式数据、数据类型、数据结构、算法等概念;C语言中则介绍了指针、结构变量、函数、递归、动态存储分配、文件操作、程序测试与调试问题等内容。
第二章主要介绍的是线性逻辑结构的数据在顺序存储方法下的数据结构顺序表(包括顺序串)的概念、数据类型、数据结构、基本运算及其相关应用。其中重点一是顺序表的定义、数据类型、数据结构、基本运算和性能分析等概念和相关知识。二是顺序表的应用、包括查找问题(简单顺序查找、二分查找、分块查找)、排序问题(直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、归并排序)、字符处理问题(模式匹配)等内容。本章重点和难点在查找和排序问题的算法思想上,6种排序方法的性能比较。
第三章主要介绍的是线性逻辑结构的数据在链接存储方法下数据结构链表的相关知识。主要是单链表、循环链表的数据类型结构、数据结构、基本运算及其实现以及链表的相关应用问题,在此基础上介绍了链串的相关知识。在应用方面有多项式的相加问题、归并问题、箱子排序问题和链表在字符处理方面的应用问题等。本章未完全掌握的是循环链表的算法问题和C的描述。
第四章介绍在两种不同的存储结构下设计的堆栈,即顺序栈和链栈的相关知识,了解堆栈的相关应用,掌握应用堆栈来解决实际问题的思想及方法。本章主要内容是顺序栈和链栈的概念、数据类型、数据结构定义和基本运算算法及其性能分析。本章堆栈算法思想较为简单,所以能较好掌握。
第五章主要介绍顺序存储和链接存储方法下的两种队列、顺序(循环)队列和链队列的数据结构、基本运算及其性能分析以及应用。顺序队列(重点是循环队列)和链队列的概念、数据类型描述、数据结构和基本运算算法及其性能分析等。本章同堆栈有点类似,算法思想较为简单,所以能较好掌握;但难点重在循环队列队空、队满的判断条件问题。第六章“特殊矩阵、广义表及其应用”将学习数组、稀疏矩阵和广义表的基本概念,几种特殊矩阵的存储结构及其基本运算,在此基础上学习特殊矩阵的计算算法与广义表应用等相关问题。本章的重点是相关数据结构的存储结构及其基本运算算法。掌握了特殊矩阵的压缩存储结构,在该存储结构下元素的定位方法,理解了稀疏矩阵的计算和广义表的存储结构。
第七章“二叉树及其应用”的知识结构主要是:非线性结构数据二叉树的定义、性质、逻辑结构、存储结构及其各种基本运算算法,包括二叉树的建立、遍历、线索化等算法。在此基础上,介绍二叉树的一些应用问题,包括哈夫曼编码问题、(平衡)二叉排序树问题和堆排序问题等。
第八章“树和森林及其应用”介绍树和森林的数据结构、基本算法及其性能分析,树和森林与二叉树之间的转换算法等,在此基础上介绍树的应用---B-树,应用B-树来实现数据元素的动态查找。本章基本掌握树和森林的概念和性质、数据结构、树的基本算法及性能分析,树和二叉树间的转换及其算法,并用应用B-树来实现数据元素的动态查找未能掌握好。
第九章“散列结构及其应用”是逻辑结构“集合型”的数据元素在散列存储方法下的数据结构及其应用知识内容。主要介绍散列函数的概念、散列结构的概念、散列存储结构的概念---散列表、散列函数和散列表中解决冲突的处理方法---开放定址法、链地址法以及散列表的基本算法及其性能分析。本章概念较为多,所以掌握不太好。
第十章“图及其应用”是逻辑结构为“图形”的数据结构及其应用知识内容,主要介绍图的定义和基础知识,图的2种存储结构。图的基本算法以及图的典型应用问题(最小生成树、最短路径、拓扑排序和关键路径等)。
二、对各知识点的掌握情况
我对各知识点的掌握情况总结如下:
第一章不太难,能基本掌握。但关系全书的时间性能分析有些未能全部掌握。第二章本章重点和难点在查找和排序问题的算法思想上,6种排序方法的性能比较。本章未掌握的为希尔排序、快速排序、归并排序的时间复杂度分析。第三章,对链表掌握还好,对其数据结构进行了分析,有循环链表,掌握的不是很好,对其中一些用法不熟练。第四章堆栈,本章堆栈算法思想较为简单,所以能较好掌握,但表达式计算问题未掌握好的。第五章的循环队列队空、队满的判断条件问题掌握的不是很好。第六章的重点是相关数据结构的存储结构及其基本运算算法。掌握了特殊矩阵的压缩存储结构,在该存储结构下元素的定位方法,理解了稀疏矩阵的计算和广义表的存储结构。第七章对二叉树掌握较好,其概念,存储,遍历有很好的掌握。就是对二叉排序树有点生疏,它的生成算法不是很会。第八章树树与二叉树之间的转换,森林与二叉树的转换算法思想基本掌握。第九章散列的一些知识,没有深入学习,大概了解了散列存储结构散列表,散列函数,冲突的处理方法。第十章了解了图的逆邻接表的存储结构,关键路径求解算法未能掌握好,不能灵活运用图的不同数据结构和遍历算法解决复杂的应用问题。
三、学习体会
通过学习数据结构与算法,让我对程序有了新的认识,也有了更深的理解。同时,也让我认识到,不管学习什么,概念是基础,所有的知识框架都是建立在基础概念之上的,所以,第一遍看课本要将概念熟记于心,然后构建知识框架。并且,对算法的.学习是学习数据结构的关键。在第二遍看课本的过程中,要注重对算法的掌握。对于一个算法,读一遍可能能读懂,但不可能完全领会其中的思想。掌握一个算法,并不是说将算法背过,而是掌握算法的思想。我们需要的是耐心。每看一遍就会有这一遍的收获。读懂算法之后,自己再默写算法,写到不会的地方,看看课本想想自己为什么没有想到。对算法的应用上,学习算法的目的是利用算法解决实际问题。会写课本上已有的算法之后,可以借其思想进行扩展,逐步提高编程能力。
四、对课程教学的建议
1、感觉上课时的气氛不是很好,虽然大部分人都在听,可是效果不是很好。所以希望老师能在授课中间能穿插一些活跃课堂氛围的话题,可以是大家都非常关心的一些内容,这样既让大家能在思考之余有一个放松,也能够提高学生的学习积极性和学习效率。
2、学习的积极性很重要,有时候我们花了很长时间去写实验报告,也很认真的去理解去掌握,可是最后实验报告可能就只得了一个C,抄的人反而得A,这样的话很容易打击学生的积极性,在后面的实验报告中没动力再去认真写。所以希望老师能在这方面有所调整。3、虽然讲课的时间很紧,但是还是希望老师能在讲述知识点的时候能运用实际的调试程序来给我们讲解,这样的话能让我们对这些内容有更深刻的印象和理解。
一、知识点概述
1、数据结构和算法
本章作为全书的导引,全面介绍了相关概念,如数据、数据元素、数据类型以及数据结构的定义。其中,数据结构包括逻辑结构、存储结构和运算集合。逻辑结构分为四类:集合型、线性、树形和图形结构;数据元素的存储结构分为:顺序存储、链接存储、索引存储和散列存储四类;最后介绍算法的时间性能分析以及算法的空间性能分析。
2、顺序表及其应用
本章主要介绍的是线性逻辑结构的数据在顺序存储下的数据结构表的概念、数据类型、数据结构、基本运算及相关问题
一、主要介绍顺序表的定义,基本算法和时间性能的分析;
二、主要介绍一些简单的查找算法和排序算法
3、链表及其应用
本章主要介绍的是线性逻辑结构的数据在链接存储下的数据结构链表的相关知识,本章主要介绍单链表、循环链表的数据类型的定义及一些对数据的操作的算法和时间性能的分析。以及链表的应用主要有多项式相加,归并问题、箱子排序问题等方面。
4、堆栈及其应用
本章介绍了两种不同的存储结构下设计的堆栈,即顺序栈和链栈;分别对顺序栈和链栈的数据类型定义和对数据的操作比若说取栈顶元素和元素入栈等算法。最后介绍了堆栈的应用如:汉诺塔和火车车厢重排问题。
5、队列及其应用
本章介绍了的是队列的定义和逻辑结构、基本算法。队列也有两种存储方式,链队列和顺序队列,其中顺序队列包括顺序队列和顺序循环队列;最后介绍了基数排序问题
6、特殊矩阵、广义表及其应用
本章介绍了特殊矩阵和广义表的概念与应用。其中,特殊矩阵包括对称矩阵、三角矩阵、对角矩阵和稀疏矩阵,书中分别详细介绍了它们的存储结构。稀疏矩阵的应用包括转置和加法运算等。最后介绍了广义表的相关概念及存储结构,关于它的应用,课本中举了m元多项式的表示问题
7、二叉树及其应用
本章在介绍有关概念时,提到了二叉树的性质以及两种特殊的二叉树:完全二叉树和满二叉树。接着介绍二叉树的顺序存储和链接存储以及生成算法。重点介绍二叉树的遍历算法(递归算法、先序、中序和后序遍历非递归算法)和线索二叉树。二叉树的应用:基本算法、哈弗曼树、二叉排序树和堆排序
8、树和森林及其应用
树和森林的概念和性质、数据结构、树的基本算法及性能分析,树与二叉树之间的转换和森林与二叉树之间的转换及其相应的算法。其次还有树和森林的遍历和树的存储结构,包括双亲表示法,孩子表示法,孩子兄弟表示法。
9、散列结构及其应用
本章主要介绍了:散列结构的概念及其存储结构、散列函数、两种冲突处理方法、线性探测散列和链地址散列的基本算法以及散列结构的查找性能分析10、图及其应用
本章主要介绍图的定义和基础知识,图的四种存储结构,图的基本算法以及图的典型应用问题如:最小生成树,最短路径,拓扑排序和关键路径等。
二、学习体会
刚接触这门课时,我却是以为这门课就是一门C语言编程课,也看不到学习这门课到底有啥用,无非就是在上一次C语言,但经过一段时间的学习和老师在课堂上的讲解,我发现,理想和现实始终都是有差距的,数据结构教会我们我们的不仅仅是单纯的编程,还有那一个个算法,教会我们如何通过设计算法来解决某一问题,如何合理的组织数据、高效率的处理数据。学会分析问题,通过设计算法来解决问题。其实只要懂得那些算法的设计思想,一个程序无论采用哪种语言,只要思想正确,一样可以设计出一个好的算法。三、教学建议
1、建议在上课过程中加大随堂练习的分量,以便学生能当堂消化课堂上学习的知识,也便于及时了解学生对知识点的掌握情况,同时有助于学生保持良好的精神状态。
2、建议在课时允许的情况下,增加习题课的分量,通过课堂的习题讲解,加深对知识点的掌握,同时对各知识点的运用有一个更为直观和具体的认识。
四川高考排名125230左右排位文科可以上哪些大学,具体能上什么大学
西南交通大学希望学院和北京农学院哪个好 附对比和区别排名
广东高考排名249380左右排位物理可以上哪些大学,具体能上什么大学
黑龙江高考排名20460左右排位理科可以上哪些大学,具体能上什么大学
湖北高考排名115550左右排位物理可以上哪些大学,具体能上什么大学
长春师范大学和广州大学哪个好 附对比和区别排名
幼儿园本周工作总结(通用10篇)
经理助理工作总结范文(精选五篇)
关于大学生期末的个人总结(通用五篇)
第一学期幼儿园教师个人工作总结(通用8篇)
幼儿园本周工作总结(通用10篇)
经理助理工作总结范文(精选五篇)
关于大学生期末的个人总结(通用五篇)
最新学校安全教育日活动总结范文
幼儿园小班九月份工作心得
音乐学科名师工作室个人总结
贵州高考排名175790左右排位理科可以上哪些大学,具体能上什么大学
山东高考排名557870左右排位综合可以上哪些大学,具体能上什么大学
河南高考排名447200左右排位理科可以上哪些大学,具体能上什么大学
辽宁高考排名97440左右排位物理可以上哪些大学,具体能上什么大学
长春工程学院的水电站设备安装与管理专业排名怎么样 附历年录戎数线
河南高考排名33600左右排位文科可以上哪些大学,具体能上什么大学
湖北高考排名85110左右排位历史可以上哪些大学,具体能上什么大学
河南高考排名321010左右排位文科可以上哪些大学,具体能上什么大学
甘肃高考排名25240左右排位理科可以上哪些大学,具体能上什么大学
四川高考排名277320左右排位理科可以上哪些大学,具体能上什么大学
湖北高考排名108880左右排位物理可以上哪些大学,具体能上什么大学
三亚城市职业学院和漳州理工职业学院哪个好 附对比和区别排名
江西洪州职业学院和无锡职业技术学院哪个好 附对比和区别排名
江西高考排名134360左右排位理科可以上哪些大学,具体能上什么大学
河北高考排名247720左右排位物理可以上哪些大学,具体能上什么大学
河北高考排名47100左右排位历史可以上哪些大学,具体能上什么大学
三门峡职业技术学院的助产专业排名怎么样 附历年录戎数线
江西高考排名105250左右排位文科可以上哪些大学,具体能上什么大学
安徽高考排名38080左右排位文科可以上哪些大学,具体能上什么大学
黑龙江东方学院和广东石油化工学院哪个好 附对比和区别排名
采购部门年终工作总结模板
临床医学个人实习总结
精循营部年终工作总结范文
珠宝工作总结范文
电话销售个人年终总结范文
第一学期幼儿园教师个人工作总结(通用8篇)
文娱部个人工作总结
高一上学期地理教学个人工作总结
大四毕业自我总结范文三篇
护士出科个人总结
女生部部长的期末工作总结(通用五篇)
工程技术员年终总结模板三篇
市场营销工作个人总结范文三篇
公司员工个人工作总结(通用五篇)
九年级英语教学工作总结(精选7篇)