这次自考是和软考一同进行的,不过开始得早一个月,前期头两遍读书基本完成任务,后面的题海战术和翻课本是以前面的学习为基础,小编结合考前后的情况,做了以下的总结。
1.第一遍
(1)第一章的概论进行了小组分析和讨论,基本思路理清了,知道数据结构有两种结构:逻辑结构和存储结构,数据结构+算法=程序。
大体将课本的宏观方向把握住了,后来发现只有宏观是不行的,具体的知识点需要把它理清,嚼碎。
画了一张整体的思维导图
出自我的网易博客《对数据结构的认识》
http://m18633778874.blog.163.com/blog/static/25321504020176198236179/
(2)存在疑问点:分不清线性表的顺序存储和链式存储、队列的循环队列和队列的链接,第七章排序没有理解;
2.第二遍
(1)第六章查找没有仔细看,可能存在一种逃避的心理;
(2)看每一章的时间比较长,自己看得时候可能比较抠字眼,需要把每一句都了解一下,虽然很慢,但是也具有一定的效果。
(3)每一章都进行了一章导图的总结,详细见我的CSDN博客
《思维导图--数据结构导论(2)》
http://blog.csdn.net/m18633778874/article/details/76064287
《思维导图--数据结构导论(3)》
http://blog.csdn.net/m18633778874/article/details/76175878
《思维导图--数据结构导论(4)【3-7章】》
http://blog.csdn.net/m18633778874/article/details/76425508
通过试题分析知识点,针对性地查看对应章节的知识点,自己利用这个过程扫清了以下知识点:
1.第四章树和二叉树,
(1)树和二叉树的转换;
(2)根据二叉树的三种遍历画出二叉树的思路
2.第二章线性表的顺序表的实现算法
3.第三章队列和栈、数组
(1)循环队列中如何求出front、rear指针的位置问题;
(2)栈和队列之间,序列倒置问题,利用两种逻辑结构的特点,后进先出、先进先出;
(3)数组的特殊矩阵和稀疏矩阵的知识,考到了三元组表示法;
基础知识的掌握,很有帮助,考试遇到了类似的原题,类似主要集中在前面的知识点,线性结构的顺序存储的时间复杂度和平均移动次数;
其中(二)(三)阶段是第三遍读书的真正阶段,这个时候才能够对课本中的知识有了一定的了解和认识,并不断地深入其中,探索。
1.算法的时空性的分析
自己对于这一块的理解比较浅,功夫相对来说下的比较少。本次考试中填空题遇到了几个算法复杂度的问题,直接插入算法的空间复杂度:O(1),这个考前一天的晚上,几个小伙伴复习了一张表:
记是记不住的,对于这张表的学习还是需要自己动手实践和思考的。
得益于老师们的算法课程和小组讨论,自己对算法的理解能够不断地深入,同时也需要进一步的学习。
2.算法设计题
2017年10月,这次的算法分析题是第二个是课本上面的,一个是n阶矩阵的倒置,一个是二叉树的先序遍历;
书到用时方恨少,代码写时才悔浅;自己自认为是看懂了,其实动手去写的时候不知道先写哪一句了,逻辑理清是关键呢。
1.书读万遍
考试的方式是检验学习能力和学习心态的一种很好的方式,考后总结是帮助我们提升的绝佳手段,书读万遍这件事需要不断地去深入,去实现,直到不拒绝这种学习,习惯上这种学习。
2.自学能力
当和别人讨论的时候,自己一定要知道自己哪里不懂,一定需要找到自己的疑惑点,我们不懂的地方也许是我们忽略了这个问题前面的知识点,没有将知识联系起来,构建一张网,而仅仅是单独的一个问题,一盘散沙。
独自思考的过程正是提升个人自学能力的过程,这个过程是其他人不能替代的。
当然一个问题想得时间很久,仍然想不出来,不要再一直想了,停下来去换一件事情做,调整一下思路,然后再去思考或者寻求他人的指点,这样的学习效率会比较高。自己之前会存在着这样的盲点,不知道停下来,导致学习效率比较低。
这篇总结断断续续总结了三次,当一个大体的框架定出来后,再次进行总结的时候比较容易上手,这大概就是宏观把握的好处吧。