这个学期接触了《数据结构》这门课程,我的感受也随着课程的学习起起伏伏,有时候刚接触一部分知识的时候觉得很难理解,但是通过写博客读读代码之后发现好理解了很多,然后接着深入学习又发现了难点,我的心情也随着学习进度改变,做个有意思的比方,就像矿工挖金子,一开始什么也挖不到很迷茫,但是继续坚持他挖到了一小块金子,于是矿工尝到了甜头继续埋头苦干,但是依旧一无所获,后来其他的矿工告诉他他的挖掘方向错了,然后他就修改了挖掘路线,果然没过多久挖到了一大块金子。我觉得这个比喻很符合我的感受和心情,但是有也有点不太一样,矿工最后收获了一大块金子,我收获的可能没有这么大,怎么说呢,这门课程对我来说还是有难度的,遇到很多需要修改路线的时候我修改了很多次成功和失败的次数一半一半。贺老师应该是知道《数据结构》对大部分同学还是有难度的,所以用了线下提前预习利用云班课教学让同学们看老师提前录好的视频,这对我作用很大,不过也有时候偷懒少看一两个,但是偷懒的后果是上完课还要再看一遍补上,有的课上理解不到得课下还要再返回去重看知识点,所以大家都喜欢云班课,对课程理解比较强的同学来说云班课可以加快他们的学习进度,对我来云班课的作用更多的是查漏补缺。我记得在一开始上课的时候,贺老师就教我们对知识点建构知识框架,我尝试过几次不过没用高大上的软件,知识在草稿纸上画了画,我终于体会到很多大神所说的“有的知识框架都是建立在基础概念之上”这种类似的话的意思,梳理好基础的概念层次,的确很有帮助,就像一团很乱的毛线你要解开它先找到头解开的速度是最快的。数据结构包括线性结构、树形结构、图状结构或网状结构,性结构包括线性表、栈、队列、串、数组、广义表等等这些知识大的框架,每一种算法都要详细的列出框架图理解的会更深刻。在刚学数据结构的时候,贺老师就就为我们阐述了它的重要性,它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。 刚开始学的时候确实有很多地方我很不理解,每次作业题时老师都会给我们出一些有难度的问题,对于我们一个初学者来说,无疑是一个具大的挑战,所以我回去看老师的代码。或者去看班里学得好的同学的博客。渐渐地一些简单的可以看懂了,有的可以自己写一些,但是很多还是只能看懂写不出来。
第一章为绪论,介绍了数据结构的基本概念,特别强调算法分析的方法,第一章的内容算是正本教材的敲门砖,让我们对数据结构这四个笼统的字有了具体的概念理解。第二章是线性表,线性表作为最简单常用的数据结构还是很好理解的,就像线一样将多项数据串联起来。第三章栈与队列,了解了栈与队列的结构特点及其基本操作,但是之前我们用的都是顺序结构,也就是都是用数组来实现的,现在有另一种实现的方法,那就是链式实现。链式实现的基本结构是“节点”,每个节点分为两个部分:一部分用来存储数据,另一部分用来存储指向下一节点的指针,这个“节点”。我们一般都用结构体来实现,用类也可以,但是不如用结构体简单。第五章是递归,这一部分掌握的不好直接导致后面树、查找、排序都很没有头绪,所以说学习知识是有关联性的,向穿珠子一样,一颗一颗的来。第七章学了树和二叉树,树形结构可以实现一对多的关系。第八章是图,图这部分牵扯到很多具体实际的问题,比线性结构要复杂很多,因为元素和元素的关系是任意的。第九章学习了查找,这是一种非常方便有用的功能,可以查找任意元素。第十章内排序,排序就是整理元素,让各个元素按照顺序排列,排序可以提高数据的查找速度,也是实用性很强的一种算法。
以上就是我对本学期具体内容的总结,学习过程中会因为懂了一点而高兴喜悦,也会因为写不出来不理解而困顿,这个时候我会稍作休整回头看看,自己是不是有什么地方拉下了,虽然一些很部分还是不理解,但是我对数据结构这门课程还是很有感情和兴趣的,同时也因为遇见像贺老师这样的好老师而庆幸。