计算机考研复习入门介绍——数据结构篇

学而时习之,不亦说乎? ——《论语》

综述

在大多数工科考研初试的四门科目中,专业课占据150分,也是考生专业知识基础的体现。工科考研的专业课中,只有计算机学科的初试有全国联考,联考包括数据结构、计算机网络、计算机组成原理和操作系统。而且,不参加全国联考的绝大多数高校的计算机科学与技术专业的初试专业课科目中,数据结构也是必考学科。大多数学校的数据结构考纲要求和考察范围基本一致,可能命题人会在题型、难度上有各自的风格。在考研复习过程中,博主将复习过程中的总结、心得和经验总结下来,发表在这里。

通用参考资料

严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社

由于计算机考研属于较为热门的工科考研专业,相较于其他专业,只有计算机在市面上有销售比较火的教辅,常见的有王道系列、天勤系列(高分笔记系列)等。跨考计算机的考生直接看严版教材一般是吃不透的,那种严谨的教材学术风不适合考试复习。考生除课本与辅导书外,也可参考目标院校的本科期末考题、往年真题等资料。当然,《大话数据结构》等通俗书本,也非常适合理解一些概念。

总览数据结构内容

  1. 开始学习
  • 答题基础
  • 算法复杂度
  1. 存储
  • 线性表(顺序存储结构 & 链式存储结构)
  • 栈、队列和数组
  • (字符串数据类型 & 模式匹配)
  • 数组、稀疏矩阵与广义表
  • 树与二叉树
  1. 操作
  • 排序(内部排序 & 外部排序)
  • 查找(静态查找表 & 动态查找表 & 哈希表)

其中,线性表、栈、队列、数组、串等属于线性结构,树和图属于非线性结构。

考试套路

  1. 在答题纸上书写代码,而且还是伪代码?
    数据结构考试中,通常用伪代码表示算法过程,并配以一定的文字描述作注释。阅卷老师会从卷面代码中看出考生的代码书写规范,也能看出其算法功底。一般数据结构考试都是以C语言为基础,算法伪代码也尽量遵循C语言的语法。
  2. 算法设计题经常出现三段式考题模式,即“描述算法思想+设计算法并写出伪代码+说明算法复杂度”。
    多数命题人在每年的命题工作中,尽管要遵守的原创性要求很高,但他们都是依据课本基础知识点、往年题型、应用领域等,辅以历届考试统计得到的难度数据,来命制试卷。命题范围一般遵循教学基础,不会太偏太难(要照顾外校考生);题型一般没有太多创新,遵循三段式或稍有改编,整体试卷犹如“换汤不换药”;难度一般依据当年招生计划和往年情况来确定,但经验再丰富的命题老师也拿捏不准一套新试卷的命题难度。
  3. 多数老师会依照往年真题命题,往年真题的可参考性非常高。
    一般学校不会在官方文件中提供专业课真题,顶多只有例题。而网上或一些小商家售卖的所谓专业课真题,多数都是学生考试后的回忆版,也有通过内部人员通过偷窥、盗摄、拾取命题人草稿等手段获得的真题资料,当然也有个别较为成熟的团队或机构自己派人去参加初试,考试期间在准考证背面空白处誊抄,出来后重新排版制作真题。机构或团队售卖的历年专业真题,对学生来说价格不菲,一般除了真题还会赠送诸如本科专业课电子课件、视频讲解等资料;有的团队害怕资料外泄,售卖的真题卷面都有较多水印,并用红色纸打印。团队售卖的真题,往往没有真正的专业领域的主编,回忆真题的作者考后写出记得的内容,他们就这样排成卷子。试题上很多错别字,更多的是专业性疑点,而且多数没有参考答案或是硕士团队自己做出来的答案。这种资料的可参考性因为这些组织的商业竞争手段而大大降低,考生要学会识别良莠,买来资料仅作参考,了解题型风格和考察范围,作一颗定心丸就好。若计算机专业课真题渠道确实不好找,如果能买到本科期末考试题,也可以作为真题替代品,因为这些期末题和考研试题都是同学院的老师命题的“作品”,也具有较高的参考性。本科教学课件PPT,其实没有必要去细细研究,又浪费时间,又不知所云。能只购买真题和期末考题,就尽量只买这些,像课件、名师视频、源程序等本就没时间看的内容只会给考生们徒增经济负担。如果实在什么资料都找不着,那就找找自己本科时学过的数据结构资料和试题,或在网上找一些试题来做,在不知道考察范围的情况下,一定要全部复习完课本涉及的知识点,绝不能漏一个。
  4. 从专业课资料获取难易程度判断学校报考热度。
    如果某985大学计算机考研群的群文件中,直接就有很多专业课真题和本科期末考题的电子版资料,或者如果某985大学又很多团队在售卖专业课资料并且竞相廉价抛售,那该大学计算机专业必然是年年爆火的。这种学校的专业课参考价值最高,数据也较为公开,凡是了解到该学校相关信息的学生,基本都会被手中掌握的数据而吸引,如果该校又有绝佳的地域优势和学科优势,多数考生们最终会选择报考该校。在本就热门的计算机考研中,合理避开热门院校是一项必要的考研策略。
  5. 写算法设计题,需要用到一些简单的C语言基础,如函数、结构体、指针等;建议回顾所学知识或重学C语言。
    由于C语言的广泛普及性,数据结构对很多跨考计算机的考生的门槛就大大降低。线性表、队列、栈、树和图的结构都要用C语言结构体来表示,要想操作它们,还要懂得结构体如何使用。每一个算法的伪代码至少是以一个函数的形式来体现的,如果涉及地址操作,还会用到指针。如果要深入学习数据结构,还需学习离散数学,离散数学是计算机学科的重要数学理论基础,而且包含了逻辑推理、图论等知识,学有余力的考生可以回顾一下。
  6. 关于算法的时间复杂度
    由基本操作的执行次数来度量复杂度,问题规模设为 n n n,基本操作的执行次数为函数 f ( n ) f(n) f(n),算法时间复杂度为 T ( n ) T(n) T(n) T ( n ) = O ( f ( n ) 中 增 长 最 快 的 项 该 项 的 系 数 ) T(n)=O(\frac{f(n)中增长最快的项}{该项的系数}) T(n)=O(f(n))空间复杂度指的是运行时所需存储空间的度量。
  7. 算法时间复杂度大小
    O ( 1 ) ≤ O ( log ⁡ 2 ( n ) ) ≤ O ( n ) ≤ O ( n log ⁡ 2 ( n ) ) ≤ O ( n 2 ) ≤ O ( n 3 ) ≤ . . . ≤ O ( n k ) ≤ O ( 2 n ) O(1)\leq O(\log_2 (n))\leq O(n)\leq O(n\log_2 (n))\leq O(n^2)\leq O(n^3)\leq ... \leq O(n^k)\leq O(2^n) O(1)O(log2(n))O(n)O(nlog2(n))O(n2)O(n3)...O(nk)O(2n)
  8. 计算算法复杂度步骤
  • (1) 确定基本操作以及问题规模;
  • (2) 计算数学函数 f ( n ) f(n) f(n),计算 T ( n ) T(n) T(n)

然后,在研招网查询目标院校的硕士目录,了解学校招生名额和考试科目等信息,上学校的研究生院、计算机类学院或系的官网查询更详细的考研信息。多方比对,分析数据,慎重选择热门院校,制定合适的考研策略。
最后,祝各位金榜题名,旗开得胜。

你可能感兴趣的:(数据结构)