第二章小结
首先,这是我人生中的第一篇博客, 虽然上学期开始老师就建议我们用博客来记录自己的学习历程,但无奈我没有去尝试。这学期踏出了第一步,希望自己能坚持下去,养成写博客的好习惯。
本章学习小结:本章的主要内容是线性表,其中包含线性表的定义、特点和表示方法等等。本章的重点是线性表的顺序和链式的表示和实现,其中的难点则是基本操作的实现。
在学习上遇到的第一个困难,就是书本上没有完整的代码,也没有详细的例题,只有算法步骤和算法描述,这对于我这种上学期基本靠看例题来理解代码的人而言是非常难受的。当然了,一个学期过去了,我也不能一直停留在上学期的水平,应该开始慢慢适应数据结构这节课和这本书的特点,才能真正的有所进步。在做第二章作业时,我就遇到了更多的问题。首先是作业中的填空题:一开始看到题目时,不能理解题目中已经给出的代码目的是什么,看到Reverse时就猜测是要将链表反向,但是由于没有明白题目的意思,以为只是停留在一个链表上进行操作,导致理解不了代码的目的,后来是在班群上看到老师分享的9班两位同学的分析,才明白题目真正的目的是什么。通过和同学一起讨论分析,我们一步步画出指针、数据等的变化,才最终完成了题目;而在后面的两道编程题中,遇到的问题则是对新的表达方式的不适应,比如p->next;同时,看书时也不能有条理地弄明白为什么这里是LNode那里是ElemType等等。因为这些都是上学期没有接触过的,所以在做题时头脑会比较混乱。解决这个的方法也一样是和同学进行讨论,最重要的是尝试去像计算机一样思考,思考这个代码在经过计算机处理后会发生什么变化,再用画图的方式来加强自己的理解;而对于实践题,问题就在于运算会超时,因为一开始没有想到可以直接通过定义数组来实现,所以采用了顺序表的方式,导致代码十分冗杂,第一次化简,是从利用三个顺序表改成利用两个顺序表,在比较后就直接输出,但这样不符合题目给出的格式,而且运算超时,于是在同学的帮助下,第二次化简就直接采用了数组的方式,于是就通过了。
目前学习上遇到的困难,主要是自己的c++基础不扎实,很多知识需要重拾,很多有用的知识需要自己去挖掘扩展。
接下来的目标是希望自己能跟着老师的进度完成作业,不要拖ddl,均衡好学习与活动之间的时间和精力,然后巩固一下上学期学的知识。