数据结构考研(考研数据结构)

2、数据结构考研建议使用《数据结构考研辅导》,作者是王红梅、胡明,由清华大学出版社出版。本书共分9章,第0和第1章分别为课程分析与复习方法和绪论。第2~8章对应《计算机学科专业基础综合考试大纲》,内容包括线性表、栈和队列、数组、树和二叉树、图、查找、排序。
数据结构是计算机最重要的专业课,只要还在干这行就逃不掉数据结构的学习和应用。这门课在统考中占到了45分(满分150分),然而这一门课又像毕加索一样抽象,对跨考的同学非常不友好。知彼知己者,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必殆。
那么怎样看书和做题呢?首先熟悉概念。这里的概念包括一些数据结构的概念以及算法的流程。很多概念的描述不是一时半会能理解的,没关系第一次看不要求深刻理解,先有个印象,然后进行实际操作,比如链表插入删除画图,二叉树遍历画图,手动排序等等,通过实际操作加深理解概念。在这一步不要过于纠结抽象的问题,也不要纠结代码,把这些工作当成乐高玩具就好。
然后熟悉代码。熟悉了操作题目后就可以逐渐抄袭,模仿书上的示例代码,由于严蔚敏版的教材代码过于……,在这里可以学习下王道天勤的代码。下列基础代码一定要掌握,各类算法题以及选择都可以在从这里衍生:链表的插入删除。算法题一般是单链表,选择题还会涉及到双链表循环链表。队列和栈的出入函数。考试中通常是可以直接使用栈或者队列,除非明确 要求你实现一个队列或者栈。相对而言这一章的代码比较简单。数组的基本操作。包括数组的遍历,插入删除。二叉树的遍历。包括前中后层序。其中前中层序都比较简单,后序需要多花点精力。这部分代码的递归形式和非递归都要学会。链表和二叉树是最可能出现算法题的地方。图的DFS和BFS。这是两种最基本的遍历方式,在此基础上可以出一些题目,比如北邮考过判断一个图是不是有环路。如果学的好的同学会发现二叉树遍历和图的遍历存在一些相关性。查找。主要是二分查找,二分查找原理简单但是写的时候注意边界问题。各类排序算法。各类排序算法的代码都要会,还要掌握各类排序算法的时间复杂度空间复杂度。以上代码一定要经常练习,反复练习,不要只背下来还有理解其原理,知道为什么这样写。
之后做习题。关于习题的选择我优先推荐1800.这本书的题目比较全面,包含了很多学校的真题,优先做选择,时间充裕再做填空和解答题。如果时间不够可以只做王道或者天勤的题目。习题中最令人棘手的当属算法设计题目,很多写代码少的同学感觉并没有思路。算法设计题目主要是两个问题,第一想不出算法或者想不出最优算法,第二想出来算法不会实现。从以往的真题中来看,可以看到算法题主要集中在数组,链表和二叉树。如果是链表或者二叉树比较容易想到算法或者暴力算法。如果是数组的题目,最优算法还是存在一定难度,有些时候需要暴力破解。但是很多算法题目可以在教材中找到参考,而非给你个比较难的没有边际的题目,也不至于说考你设计个DP,Greedy,FSM之类的在LeetCode中都有可能是Hard的题目。因此还是要熟练掌握书上的算法,并多多研究各种习题的算法解答,最开始想不到没关系,一点一点学习模仿,不要想着有什么万能的办法可以速成算法题,这种题目不是一朝一夕可以成的,需要不断练习摸索 。
