- 相关推荐
数据结构学习总结
总结是事后对某一时期、某一项目或某些工作进行回顾和分析,从而做出带有规律性的结论,通过它可以全面地、系统地了解以往的学习和工作情况,让我们抽出时间写写总结吧。我们该怎么去写总结呢?下面是小编整理的数据结构学习总结,欢迎大家借鉴与参考,希望对大家有所帮助。
数据结构学习总结1
数据结构与算法是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且也已经成为其他理工专业的热门选修课。随着高级语言的发展,数据结构在计算机的研究和应用中已展现出强大的生命力,它兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。通过学习,先报告如下:
一、数据结构与算法知识点
本学期学的《数据结构与算法》这本书共有十一个章节:
第一章的内容主要包括有关数据、数据类型、数据结构、算法、算法实现、C语言使用中相关问题和算法分析等基本概念和相关知识。其中重点式数据、数据类型、数据结构、算法等概念;C语言中则介绍了指针、结构变量、函数、递归、动态存储分配、文件操作、程序测试与调试问题等内容。
第二章主要介绍的是线性逻辑结构的数据在顺序存储方法下的数据结构顺序表(包括顺序串)的概念、数据类型、数据结构、基本运算及其相关应用。其中重点一是顺序表的定义、数据类型、数据结构、基本运算和性能分析等概念和相关知识。二是顺序表的应用、包括查找问题(简单顺序查找、二分查找、分块查找)、排序问题(直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、归并排序)、字符处理问题(模式匹配)等内容。本章重点和难点在查找和排序问题的算法思想上,6种排序方法的性能比较。
第三章主要介绍的是线性逻辑结构的数据在链接存储方法下数据结构链表的相关知识。主要是单链表、循环链表的数据类型结构、数据结构、基本运算及其实现以及链表的相关应用问题,在此基础上介绍了链串的相关知识。在应用方面有多项式的相加问题、归并问题、箱子排序问题和链表在字符处理方面的应用问题等。本章未完全掌握的是循环链表的算法问题和C的描述。
第四章介绍在两种不同的存储结构下设计的堆栈,即顺序栈和链栈的相关知识,了解堆栈的相关应用,掌握应用堆栈来解决实际问题的思想及方法。本章主要内容是顺序栈和链栈的概念、数据类型、数据结构定义和基本运算算法及其性能分析。本章堆栈算法思想较为简单,所以能较好掌握。
第五章主要介绍顺序存储和链接存储方法下的两种队列、顺序(循环)队列和链队列的数据结构、基本运算及其性能分析以及应用。顺序队列(重点是循环队列)和链队列的概念、数据类型描述、数据结构和基本运算算法及其性能分析等。本章同堆栈有点类似,算法思想较为简单,所以能较好掌握;但难点重在循环队列队空、队满的判断条件问题。第六章“特殊矩阵、广义表及其应用”将学习数组、稀疏矩阵和广义表的基本概念,几种特殊矩阵的存储结构及其基本运算,在此基础上学习特殊矩阵的计算算法与广义表应用等相关问题。本章的重点是相关数据结构的存储结构及其基本运算算法。掌握了特殊矩阵的压缩存储结构,在该存储结构下元素的定位方法,理解了稀疏矩阵的计算和广义表的存储结构。
第七章“二叉树及其应用”的知识结构主要是:非线性结构数据二叉树的定义、性质、逻辑结构、存储结构及其各种基本运算算法,包括二叉树的建立、遍历、线索化等算法。在此基础上,介绍二叉树的一些应用问题,包括哈夫曼编码问题、(平衡)二叉排序树问题和堆排序问题等。
第八章“树和森林及其应用”介绍树和森林的数据结构、基本算法及其性能分析,树和森林与二叉树之间的转换算法等,在此基础上介绍树的应用---B-树,应用B-树来实现数据元素的'动态查找。本章基本掌握树和森林的概念和性质、数据结构、树的基本算法及性能分析,树和二叉树间的转换及其算法,并用应用B-树来实现数据元素的动态查找未能掌握好。
第九章“散列结构及其应用”是逻辑结构“集合型”的数据元素在散列存储方法下的数据结构及其应用知识内容。主要介绍散列函数的概念、散列结构的概念、散列存储结构的概念---散列表、散列函数和散列表中解决冲突的处理方法---开放定址法、链地址法以及散列表的基本算法及其性能分析。本章概念较为多,所以掌握不太好。
第十章“图及其应用”是逻辑结构为“图形”的数据结构及其应用知识内容,主要介绍图的定义和基础知识,图的2种存储结构。图的基本算法以及图的典型应用问题(最小生成树、最短路径、拓扑排序和关键路径等)。
二、对各知识点的掌握情况
我对各知识点的掌握情况总结如下:
第一章不太难,能基本掌握。但关系全书的时间性能分析有些未能全部掌握。第二章本章重点和难点在查找和排序问题的算法思想上,6种排序方法的性能比较。本章未掌握的为希尔排序、快速排序、归并排序的时间复杂度分析。第三章,对链表掌握还好,对其数据结构进行了分析,有循环链表,掌握的不是很好,对其中一些用法不熟练。第四章堆栈,本章堆栈算法思想较为简单,所以能较好掌握,但表达式计算问题未掌握好的。第五章的循环队列队空、队满的判断条件问题掌握的不是很好。第六章的重点是相关数据结构的存储结构及其基本运算算法。掌握了特殊矩阵的压缩存储结构,在该存储结构下元素的定位方法,理解了稀疏矩阵的计算和广义表的存储结构。第七章对二叉树掌握较好,其概念,存储,遍历有很好的掌握。就是对二叉排序树有点生疏,它的生成算法不是很会。第八章树树与二叉树之间的转换,森林与二叉树的转换算法思想基本掌握。第九章散列的一些知识,没有深入学习,大概了解了散列存储结构散列表,散列函数,冲突的处理方法。第十章了解了图的逆邻接表的存储结构,关键路径求解算法未能掌握好,不能灵活运用图的不同数据结构和遍历算法解决复杂的应用问题。
三、学习体会
通过学习数据结构与算法,让我对程序有了新的认识,也有了更深的理解。同时,也让我认识到,不管学习什么,概念是基础,所有的知识框架都是建立在基础概念之上的,所以,第一遍看课本要将概念熟记于心,然后构建知识框架。并且,对算法的学习是学习数据结构的关键。在第二遍看课本的过程中,要注重对算法的掌握。对于一个算法,读一遍可能能读懂,但不可能完全领会其中的思想。掌握一个算法,并不是说将算法背过,而是掌握算法的思想。我们需要的是耐心。每看一遍就会有这一遍的收获。读懂算法之后,自己再默写算法,写到不会的地方,看看课本想想自己为什么没有想到。对算法的应用上,学习算法的目的是利用算法解决实际问题。会写课本上已有的算法之后,可以借其思想进行扩展,逐步提高编程能力。
四、对课程教学的建议
1、感觉上课时的气氛不是很好,虽然大部分人都在听,可是效果不是很好。所以希望老师能在授课中间能穿插一些活跃课堂氛围的话题,可以是大家都非常关心的一些内容,这样既让大家能在思考之余有一个放松,也能够提高学生的学习积极性和学习效率。
2、学习的积极性很重要,有时候我们花了很长时间去写实验报告,也很认真的去理解去掌握,可是最后实验报告可能就只得了一个C,抄的人反而得A,这样的话很容易打击学生的积极性,在后面的实验报告中没动力再去认真写。所以希望老师能在这方面有所调整。3、虽然讲课的时间很紧,但是还是希望老师能在讲述知识点的时候能运用实际的调试程序来给我们讲解,这样的话能让我们对这些内容有更深刻的印象和理解。
数据结构学习总结2
一、数据结构与算法知识点
《数据结构与算法》这本书共有十一个章节。从第一章的数据结构和算法的引入,介绍了数据和数据类型、数据结构、算法描述工具、算法和算法评价四个方面的知识。第二章则介绍了顺序表及其应用的相关知识。从顺序表的基本概念开始,分别介绍了顺序表基本算法、顺序表基本算法性能分析、顺序表的应用。顺序表应用又涉及多方面,有查找问题、排序问题、字符处理问题。其中查找分简单顺序查找,有序表的二分查找,分块查找三种。排序中分插入排序(直接插入排序、希尔排序)、交换排序(冒泡排序、快速排序)、选择排序(直接选择排序)、归并排序。第三章链表及其应用,分为链表的基本概念、单链表的数据结构、单链表的基本算法、循环链表、链表的应用。第四章堆栈及其应用,分为堆栈堆的基本概念、顺序栈及其基本算法、链栈及其基本算法、堆栈的应用。第五章队列及其应用,分为队列的基本概念、顺序队列及其基本算法、链队列及其基本算法、基数排序问题。第六章特殊矩阵和广义表及其应用,分为数组与矩阵,特殊矩阵的压缩存储、矩阵的应用实例、广义表。第七章二叉树及其应用。分为二叉树的基本概念、二叉树存储结构、二叉树的遍历算法、线索二叉树、二叉树的应用(基本算法、哈夫曼树、二叉排序树、堆和堆排序)。第八章树和森林及其应用。分为树和森林的基本概念,树的存储结构、树的基本算法及性能分析、树的应用(B树)。第九章散列结构及其应用。分为散列结构的概念等。着重学习了散列表、散列函数、冲突处理方法(开放定址法和链地址法)。第九章图及其应用。分为图的概念、图的存储结构及其基本算法、图的遍历及算法、有向图的连通性和最小生成树、图的最小生成树、非连通图的生成森林算法、最短路径、有向无环图及其应用。第十一章算法性能分析和算法设计方法简介。
二、对各知识点的掌握情况
综合以上知识点,我对自我学习成果作如下总结:对于第一章对数据结构的概念理解颇深,大概是每次都要谈论到吧。对算法的时间性能,空间性能基本了解。这些在后面的章节都会有运用。第二章顺序表较为清晰。如何去建一个顺序表,顺序表的一些基本算法都可以很好运用。在顺序表应用中对二分查找映象深刻。对于排序能了解其算法思想。对字符串的处理应用的较少,没有深入了解。第三章链表的知识,由于链表在上学期就有所接触,老师也强调其作用,对链表掌握还好,但在第三章中又学习到了新的内容,对其数据结构进行了分析,增加了循环链表,对知识进行补充。第四章堆栈,堆栈是一个运算受限的线性表,可对比顺序表的学习,不同的是还有链栈,这部分感觉是全书最容易的部分了。第五章队列是接着堆栈之后的又一个运算受限制的线性表,感觉和堆栈一样简单。第六章矩阵和广义表是我的弱项,在这部分的学习过程中没有用心学,现在正在深入研究。接下来的第七章第八章是全书的重点,特别是第七章二叉树,所以学习的重心也偏向这两章。对二叉树掌握较好,其概念,存储,遍历有很好的掌握。就是对二叉排序树有点生疏,它的生成算法不是很会。第八章树和森林,树与二叉树之间的转换,森林与二叉树的转换算法思想基本掌握。第九章散列的一些知识,没有深入学习,大概了解了散列存储结构散列表,散列函数,冲突的处理方法。第十章感觉是很难的一章,知识点多,能够画有向图和无向图的邻接矩阵,邻接表。图的`深度遍历和广度遍历,但是其算法只是能读懂。
三、学习体会
开学伊始,听说要学数据结构与算法,而且考试通过率极低,就带着这样恐惧的心理开始学习了。通过学习数据结构与算法让我对程序有了新的认识。“数据结构和算法”课程主要学习在软件开发中涉及到的各种常用数据结构及其常用算法,在此基础上,学习如何利用数据结构和算法解决一些基本的应用问题,通过学习我了解了相关领域的基础知识和基本应用。知道了学习一种数据结构必须掌握该数据结构的定义,其包括逻辑结构,存储结构和基本算法还有基本应用知识。对于一个应用程序,不是它能运行,能显示结果就行了,还要考虑它的各方面的性能,时间性能,空间性能。以此节约空间和时间。给定一个程序首先要分析其应有的数据结构。怎么存储,怎么性能会比较好。“数据结构与算法”是一门很有用的科目,可是也是很令人头疼的学科,这也锻炼了我们迎难而上的毅力。当然学习数据结构与算法是建立在学习好计算机语言的基础上的,学习编程是枯燥无味的,学据结构给我带来更多的是思考的东西。
课程结束我总结了学习过程中遇到的困难,有时写不出合条件的算法,在写实验报告时,有时就是将书上的源程序搬上去,对程序进行一些修改。针对这一情况我会慢慢改正。多加思考。
四、对课程教学的建议
1、课程课时较紧,课堂上的练习时间较少,讲解的东西越多,头脑有时就很混乱。
2、长期的ppt教学,会使产生疲劳,稍不留神,思维开了小差,就跟不上了。
可以适当结合ppt和例题讲解。通过课堂的习题讲解,加深对知识点的掌握,同时对各知识点的运用有一个更为直观和具体的认识。
数据结构学习总结3
1.数据
数据(Data)是外部世界信息的载体,是能够被计算机识别,加工,存储的。在现实生活中也就是我们的产品原材料。
计算机中的数据包括数值数据,图片,影音资料等.
2.数据元素和数据项
数据元素(Data Element)是数据的基本单位,在计算机处理的过程中通常是作为一个整体来作为处理的。
数据项(Data Item):一个数据元素通常由一个或多个数据项组成。
比如数据库表:(Student),它有Id,Name,Sex,Age,Address等字段,而这张表又有多行数据。我们通常将这些字段就叫做数据项,每行数据
就叫做数据元素。在某些情况下数据元素又称为元素,节点,纪录等。
数据项分为两种:(1)初等项;(2)组合项[也就是可以分为更小的项,比如人可以再分为欧洲人,亚洲人,非洲人]
3.数据结构
数据结构(Data Structure)是在相互之间存在的一种或多种特定关系的数据元素集合.
众所周知,在计算机中任何数据元素都不可能是单一或孤立存在的,它们之间都存在着一定的关系。就和人类体系结构一样,人不可能是孤立而与外界没有关系的。
数据结构分为四种:
(1)集合[Set]
(2)线性结构[Linear Structure](常见的`线性结构数据,数据库存储数据)
(3)树形结构[Tree Structure](树状结构,就好像人类的继承关系,在计算机中xml文件存储数据最为典型)
(4)图形结构[Graphic Structure](图形结构也是相对比较复杂的,因为存在多对多的关系,计算机网络拓扑)
4.数据对象
数据对象(Data Object),性质相同的数据元素的集合,是数据(Data)的一个子集。{“aa”,"bb","cc","dd"}我们就可以将其看做是一个数据对象,都是字符长度的集合。
5.数据类型
数据类型(Data Type),从上面的数据对象我们可以引申出数据类型这个概念,很多时间数据类型在C#,Java等高级程序语言中说的比较多
数据类型分为两种:
(1)非结构的原子类型(在C#也就是基本数据类型,如int,string,long等)
(2)结构类型,可以由多个结构类型组成,并可以分解。而结构类型可以包含结构类型和非结构的原子类型
6.算法
算法:一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
一个算法的优劣可以使用空间复杂度和时间复杂度来衡量。其中算法有五个特征:
(1)有穷性:算法中每条指令的执行次数有限,执行每条指令的时间有限
(2)确切性:算法的每一步骤必须有确切的定义
(3)输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件
(4)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的
(5)可行性:算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成
算法分类:基本算法,数据结构算法,数论与代数算法,计算几何算法,图论算法,动态规则与数据分析,加密算法,排序算法,检索算法,随机化算法,并行算法
7.复杂度
算法的复杂度可以使用时间复杂度和空间复杂度来衡量。
时间复杂度:算法的时间复杂度是指算法需要消耗的时间资源
空间复杂度:算法的空间复杂度是指算法需要消耗的空间资源
8.数据的物理结构
数据的物理结构(Physical Structure)又称为存储结构,是数据在计算机中的表示和存储,包括数据元素的表示和存储以及数据元素关系的表示和存储。
数据结构存储分为:(1)顺序存储结构.(2)链式存储结构
顺序存储结构:通过数据元素在计算机存储器上的相对位置来表示数据元素的逻辑关系,一般把逻辑相邻的数据元素存储在物理位置相邻的存储单元中。
C#中的数组结构就是典型的顺序存储结构方式。
链式存储结构:相邻元素不需要在物理存储位置单元相邻,它们而是通过存储相邻数据元素的地址来维护关系。地址我们通常称之为为引用(Reference)
备注:此篇文章只是总结了数据结构方面的一些概念,我们在学习编程的时候经常说数据,复杂度等等这些概念,至于这数据,复杂度等等到底是什么东西我们也没有去研究过,这里总结了一些知识点可以帮助大家理解这些概念。
【数据结构学习总结】相关文章:
学习的总结07-02
学习总结05-17
学习的个人学习总结03-14
外出学习总结12-05
学习总结模板06-05
学习总结范文09-14
工厂学习总结09-27
关于学习总结12-06
培训学习总结01-26