数据结构学习心得

时间:2024.4.20

本学期在王教授的带领下我们学习了《数据结构与算法》,本课程历时13个周。学现在我就对本课程的学习内容、学习体会以及对该门课程的教学建议等方面作下总结。

一、学习内容总结(按章节进行

第一章交代了该学科的相关概念,如数据、数据元素、数据类型以及数据结构的定义。其中,数据结构包括逻辑结构、存储结构和运算集合。逻辑结构分为四类:集合型、线性、树形和图形结构,数据元素的存储结构分为:顺序存储、链接存储、索引存储和散列存储四类。然后,介绍了一些常用的数据运算。最后着重介绍了算法性能分析,包括算法的时间性能分析和算法的空间性能分析。本章中我对数据和数据结构的概念理解较为透彻,熟悉数据结构的逻辑结构和存储结构。而对算法的时间、空间性能分析较为模糊,尤其是时间性能分析需要加强。

第二章具体地介绍了顺序表的概念、基本运算及其三个应用(查找问题、排序问题以及字符处理问题)。基本运算有:初始化表、求表长、排序、元素的查找、插入及删除等。元素查找方法有:简单顺序查找、二分查找和分块查找。排序方法有:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序及归并排序等。最后介绍了有关顺序串的相关知识。在本章中我对于顺序表的概念及其生成算法理解的还算可以,并且熟悉了简单顺序查找和二分查找,对分块查找掌握的不是很好;排序问题中,由于选择排序和冒泡排序在大一C语言课上已经学习过,经过本次再次学习,掌握的还不错。

第三章介绍了链表的节点结构、静态与动态链表的概念、链表的基本运算(如求表长、插入、查找、删除等)、单链表的建立(头插法和尾插法)以及双向循环链表的定义、结构、功能和基本算法及相关应用。链表中数据元素的存储不一定是连续的,还可以占用任意的、不连续的或连续的物理存储区域。与顺序表相比,链表的插入、删除不需要移动元素,给算法的效率带来较大的提高。单链表是一种简单、常用的数据结构,所以应用单链表来完成多项式的相加、有序表的归并及箱子排序等运算,其时间性能较好。双向循环链表的插入操作有前插和后插之分。其操作过程较单链表复杂、灵活,理解起来较为困难。

第四章介绍了堆栈及其相关应用。栈是一种运算受限制的线性结构。其基本运算方法与顺序表和链表运算方法基本相同,不同的是堆栈须遵循“先进后出”的规则,其插入和删除操作都在在栈顶进行。顺序存储和链接存储的栈分别被称为顺序栈和链栈,不同的存储结构也决定了各种运算实现的方法不同。书本中列出了两种结构的相应算法,如入栈、出栈等。本章重点介绍了栈的一些基本应用。栈作为一类重要的数据结构,被广泛应用于各种程序设计上。

第五章介绍了队列的逻辑结构、存储结构及基本运算,在此基础上介绍了队列的一些基本应用。队列是一种运算受限制的线性结构。遵守“先进先出”的规则,其插入在队尾、删除在队头。顺序存储和链接存储的队列分别被称为顺序队列和链队列。同时也为了节省存储空间,于不断有出队运算,使得顺序队列出现了“假溢出”现象,为避免这种现象的发生,我们提出了循环队列的概念。最后本章介绍了关于基数排序的问题,属于队列的典型应用 。

第六章在介绍数组的概念和存储方法的基础上,重点介绍了特殊矩阵的存储及应用和广义表的相关概念。其中,特殊矩阵包括对称矩阵、三角矩阵、对角矩阵和稀疏矩阵,教材中分别详细介绍了它们的存储结构。稀疏矩阵的应用包括转置和加法运算等。最后介绍了广义表的相关概念和存储结构以及它的应用,课本中举了m元多项式的表示问题。尽管广义表是线性表的一种推广,但其不是线性表。

第七章二叉树的知识是重点内容。在介绍有关概念时,提到了二叉树的性质以及两种特殊的二叉树:完全二叉树和满二叉树。接着介绍二叉树的两种存储结构:顺序存储和链接存储。二叉树的遍历算法(递归算法、先序、中序和后序遍历非递归算法)和线索二叉树算法。二叉树中叶子节点个数统计,二叉树的深度计算等,这些是本章学习的要点。在此基础上教材列出了有关二叉树应用的问题:如表达式求值、哈弗曼树和哈弗曼编码问题、二叉排序树和堆排序等问题,在学习是较难掌握。

第八章教材介绍了树和森林的概念、遍历和存储结构,还有树、森林和二叉树的相互关系,树或森林怎样转化成二叉树,二叉树又如何转换为树和森林等算法。森林是树的集合。任何一个森林或一棵树可以唯一的对应到一棵二叉树上。树的常用存储结构包括双亲表示法、孩子表示法和孩子兄弟表示法。本章还介绍了树的一种典型应用——B树,B树是一种平衡的多路查找树。

第九章的主要知识点有:散列结构的概念及其存储结构、散列函数、两种冲突处理方法、线性探测散列和链地址散列的基本算法以及散列结构的查找性能分析。散列表是一种非常特殊的数据结构,表中各元素之间没有直接的关系,散列和冲突处理是散列法中最重要的两个概念。散列通过某种函数确定节点关键字与节点存储地址之间的关系。常用的散列函数有直接定址法、除留余数法、数字分析法、平方取中法和折叠法等。由于散列法的自身特点,冲突的发生是不可避免的。

第十章介绍了图的概念及其应用,是教材的难点。图的存储结构的知识点有:邻接矩阵、邻接表、逆邻接表、十字链表和邻接多重表。图的遍历包括图的深度优先搜索遍历和广度优先搜索遍历。其余知识点有:有向图、连通图、生成树和森林、最短路径问题和有向无环图及其应用。有向无环图重点理解AOV网和拓扑排序及其算法。

第十一章:略

二、学习体会

无论我们学习什么课程,概念永远是基础,所有的知识都是建立在基础概念之上的。我们要将概念熟记于心,然后构建知识框架。数据结构包括线性结构、树形结构、图状结构或网状结构。线性结构包括线性表、栈、队列、串、数组、广义表等,栈和队列是操作受限的线性表,串的数据对象约束为字符集,数组和广义表是对线性表的扩展:表中的数据元素本身也是一个数据结构。除了线性表以外,栈是重点,因为栈和递归紧密相连,递归是程序设计中很重要的一种工具。树状结构中的重点自然是二叉树和哈弗曼树了。对于二叉树的很多操作都是基于对二叉树的遍历,掌握了如何遍历,很多问题也就迎刃而解了,比如对二叉树结点的查找访问、统计二叉树中叶子结点的数目、求二叉树的深度等。哈弗曼编码也有着很广泛的应用。对于图状结构,主要学习图的存储结构及图的遍历。对算法的学习是学习数据结构的关键。要注重对算法的掌握。对于一个算法,如果我们不是很理解的话,可以手动将算法走一遍,慢慢理解该算法的思想。学习这门课程的最终目的,还是要学会如何设计算法,这需要我们长期的练习和思考。

、教学建议

1、希望平时阶段考核的题目能够按照考研的标准来出,让我们适应考研的试卷。

2、希望老师在讲完每章后,能增加一些随堂小练习,加深我们对每一章的理解。

3、希望老师到下课的时候能准时下课,听这门课真得很费脑力,给我们一点休息的时间。

以上是我对《数据结构与算法》这门课程所作的课程总结。虽然这门课程结束了,但是,我还有很多内容没有掌握牢固,我会继续努力的。


第二篇:数据结构学习方法


关于数据结构学习的一些心得

不知道你用的是:C++版还是C语言版,但都没关系,方法都是一样的。

我用的是耿国华版的《数据结构-C语言描述》

拿C语言版数据结构举例:

首先,你得将C语言学的差不多,这算基础;

然后,你就需要知道如何去学本书了。

我想你刚开始看书或听课时的感受和我一样,茫然啊,听着看着一些不知所云的东西。 为方便介绍方法,我得先说一下我这本数据结构的章目安排:

1.绪论,2.线性表;3.限定性线性表--栈和队列;4.串;5.数组和广义表;6.树和二叉树;

7.图;8.查找;9.内部排序;10.外部排序

第1章,绪论:是一些准备知识,什么基础概念了,方法工具了,性能评价了还有设计规范等。看这些很木然吧?其实你不必太大力气研究,就略看一遍,冲向第2、3章!(你如果学了汇编语言就知道,啥叫看不懂了,知道我看到了最后几章,才明白了前面好的的疑问,呵呵)

然后从第2章到第5章都是线性结构,你可以一块儿研究:

第2章,线性表(包括顺序存储、链式存储) 你如果看不进去第2章的话,直接做于此章相关的一道实习题:约瑟夫环问题(很著名哦)。然后你根据题目要求,看相应知识,然后你就很感兴趣的看了线性表的逻辑结构、链式存储、单链表、循环链表等知识。当你成功解决掉这道题时,此章迎刃而解!

第3章,限定性线性表--栈和队列,这无非就是介绍了两种特殊的线性表,哥们,你

第2章都解决了,这章还可能有问题吗?我劝你直接做实习题:停车场问题!然后根据要求看知识点。这是一道综合性比较大的题,但都是2、3章的知识。我做了一个多月,做完后,线性表理解的透透的。超有成就感,不信试试!

第4章、第5章,我就不说了,虽然有点麻烦,但你有了前面的基础,就没问题了,因为他们都是一个模式:定义抽象数据类型,存储结构,然后了解相关操作就行了。

从第6章树到第7章图,都是非线性表的研究。真两部分很重点。估计也是大多数人头疼的地方。你只要思路清楚就行了:

第6章,树,你需要先了解树的相关定义(不知道你学离散数学没?里边有树与图,学过后更好理解),然后了解其抽象类型定义,不看也罢,直接看重点二叉树的存储结构,然后就像我说的,到相关操作了:遍历。就是用操作法把二叉树存储结构走一遍,之行所需要操作,比如,要输出所有节点,那么每过一个节点,执行输出就行了。一样的,你可以做后面的实习题:建立以可用二叉链表方式存储的二叉树,然后进行遍历(先序,中序,后序),打印输出遍历结果。你做完后就很清楚了。还有一些别的知识点:哈夫曼树等。你看起来就和方便了。

第7章,图,或许是一个更棘手的,不过不用怕,研究方法与树相同,毕竟都是非线性表嘛!其中有个深度遍历,有个广度遍历,又分为邻接矩阵存储与邻接表存储两种。看起来其实很系统的。一个原则,不能看乱了,要有系统,有目的的看。当然,这章也得做个实习题:分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历。看,这题多好!直接让你复习了多少知识?! 如果说,前7章都是学习了结构的话,后面的3章:查找、内部排序、外部排序,就是研究了数据结构的一些操作技巧、方法等(老师如是说)。

其实你在前7章的操作部分还不是方法吗?后面3章就是系统了,方法化了。在前7章弄懂后,后3章稍微花一些精力就OK了。

行了,按章就介绍到这里,要点有几条:

1.关于每种数据结构,都要好好研究研究她的存储结构,在大脑中放映出她的存储结构,既然都能显示在脑子里了,剩下的操作问题,就会轻松好多。

2.每章或一个归类做一个实习题,这样才能使

a.不茫然的,看书。而且会使你带着浓厚的兴趣哦,比如“停车场问题”,虽说造出来的那个停车场系统,是个很不实用的系统,但剩下的完善、升级,不正是靠我们大家吗? b.做实习题,会使你感觉到自己所学的数据结构,果然有实际的用处,这样才会有精神学;

c.每当你做出一道实习题后,感觉非一般的,呵呵,而且会让你意识到,自己前面的知识,确实会了;

d.做实习题,会使你脑海中关于此数据结构的立体印象更加深刻,不可磨灭。

3.学数据结构,需要耐心。切莫急躁。很修身养性的。

行了,就介绍到这里吧,祝你好运!

更多相关推荐:
数据结构学习总结

通过一学期对《数据结构与算法》的学习,大概的了解了基本的数据结构和相应的一些算法。下面总结一下自己一个学期学习的收获和心得。数据结构是什么:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多…

数据结构心得体会

心得体会数据结构是一门纯属于设计的科目它需用把理论变为上机调试在学习科目的第一节课起鲁老师就为我们阐述了它的重要性它对我们来说具有一定的难度它是其它编程语言的一门基本学科很多同学都说数据结构不好学这我深有体会刚...

数据结构学习总结

数据结构总结数据结构讲的是什么,数据结构课程主要是研究非数值计算的研究的程序设计问题中所出现的计算机处理对象以及它们之间关系和操作的学科。第一章主要介绍了数据、数据元素、数据类型以及数据结构的定义。其中,数据结…

数据结构课程设计心得体会

程序设计心得体会做了一个星期的程序设计终于做完了,在这次程序设计课中,真是让我获益匪浅,我突然发现写程序还挺有意思的。由于上学期的C语言跟这学期的数据结构都算不上真正的懂,对于书上的稍微难点的知识就是是而非的,…

数据结构与算法课程设计 心得体会 学习体会 (25)

数据结构课程设计心得体会学号:0804012023班级:计本(2)班姓名:谷敏敏经过两个星期的不懈努力,数据结构课程设计终于落幕。我的程序设计是使用prim算法得到所有的最小的生成树,在整个设计过程中,自己从刚…

数据结构(学习小结重点总结)

数据结构复习重点归纳适于清华严版教材一数据结构的章节结构及重点构成数据结构学科的章节划分基本上为概论线性表栈和队列串多维数组和广义表树和二叉树图查找内排外排文件动态存储分配对于绝大多数的学校而言外排文件动态存储...

数据结构 课程设计 心得体会

数据结构课程设计心得体会经过一个星期的课程设计过程曲折可谓一语难尽整天都是对着电脑不然就是翻阅资料在此期间我失落过也曾一度热情高涨点点滴滴令我回味无长这次课程设计使我体会到只有做到细心耐心恒心才能做好事情这次的...

数据结构学习心得

数据结构学习心得数据结构是计算机科学与技术专业的重要基础课程之一也可以说是我们将来软件能力的基础通过这门课程的学习特别是四道上机题的实践我感觉提高很大不但对数据结构有了更深刻的理解甚至自己对世界生活的认识也发生...

陈园 数据结构心得

20xx年度数据结构结课心得报告本周科院的数据结构和动画课程陆续结束了鼓掌一下大家开始写一些心得体会现在把今年收到的第一份发给大家做一个样板第一的确是自己的学习过程和体会绝对不在网上能找到第二份第二格式正确没有...

数据结构与算法课程设计 心得体会 学习体会 (14)

课程设计的心得体会经过这次课程设计不但巩固了C语言C以及数据结构的知识更加很好的将这三门专业课的知识融会贯通刚开始抽到这个题目的时候看了好半天不懂题目的意思也找不到与书上哪种存储结构挂上钩看到是游戏设计心就有点...

数据结构与算法课程设计 心得体会 学习体会 (30)

课程设计心得体会通过了这两个星期的程序设计我从中得到了许多的经验以及软件设计的一些新的思路从这个八皇后问题设计以及分析中本人从中理解到了数据结构对于计算机软件设计的重要性它的使用可以改变一个软件的运行周期也可以...

数据结构与算法课程设计 心得体会 学习体会 (20)

C课程设计心得感想课程设计是培养学生综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训练和考察过程随着科学技术发展的日新日异当今计算机应用在生活中可以说得是无处不在因此...

数据结构学习心得(22篇)