【数据结构】考研复习攻略

        “数据结构”是计算机、软件工程专业考研时,最经常考的科目之一,也是很多同学头疼的科目。本文介绍的方法是通用的,既适用于408中的数据结构部分,也适用于大部分自主命题科目的数据结构部分。

        图灵奖获得者,计算机科学家 Niklaus Wirth 曾经说过一句著名的话:

 Algorithm+Data Structures=Programs

翻译过来就是:    算法+数据结构=程序

        由此可见,数据结构在程序中的重要性。我们不仅仅在考研中要掌握它,而且在ACM等比赛,以及软件开发,算法设计等等,都会用到它。

    那么,数据结构到底应该如何复习呢?

前驱知识

        首先,学习数据结构需要有一定的计算机语言基础。比如C语言,C++等等。没有语言基础的同学会很吃力。并且,很多例子、题目,甚至结构都是用编程语言表达的,部分考试题目也会要求你用伪代码或者某种语言编程作答。

        

        所以如果对于跨考生,尤其是对计算机/软件工程专业并没有了解过的跨考生,务必要提前学一门编程语言。建议学C语言。

        对于学过但是忘了或者当时没好好听课的同学,建议抽时间回顾一下语言,这样对于之后的学习也有帮助。

前期策略

        首先,确定你要考哪些内容。

        

        如果是408,那么去看一下408考试的大纲,明确考试范围。

        如果是自主命题,那么一部分报考学校也会公布考试范围或者参考书。

        没有学习过数据结构,或者已经忘了的话,建议重新看一下课本。

        408的同学,看一下自己曾经学过的数据结构教材,或者用之前推荐的《数据结构》严蔚敏版。

        自主命题的同学,建议看报考学校推荐的参考书。如果没有,建议看报考学校本科所用的课本。

        如果时间充裕,可以用电脑把所学的数据结构和算法实现一下,这样更能加深理解。时间不充足的话就不必了。

        如果是初学者,可以看一些数据结构的视频课。视频比看书要有意思,对于自己看书吃力的同学会有帮助。计算机与软件考研的小编:我们之后会给同学们介绍一下专业课的一些视频资料的。

中期策略

        对于基础较好的同学,可以不用看教材(当然考试范围还是要了解的),直接从中期开始。

        中期的任务是熟悉题型,加强知识点,分清重难点,把握知识体系,熟练掌握解题技巧。

        

        一般会选择王道或者天勤的数据结构辅导书。

        王道和天勤是两个计算机专业的考研论坛,每年都会出版相关的复习辅导书。虽然有时候书中的小错误很多,但还是蛮符合考研需求的。

        两者相比较,王道书的题目比较多,适合练习,而天勤的讲解多一些,题目较少。选哪个就随你喜欢啦~

        这个时期还可以做一件事,就是整理算法模版。

        像ACM比赛用的算法模版,数据结构也可以整理一套自己的算法模版。可以包括像众多的排序算法,搜索算法,KMP,二叉树遍历等等。

        整理出这套算法模版后,打印出来,并背过。后期遇到题目的时候就可以直接套用模版来做题。

后期策略

        这个时期是最关键的。主要任务是熟悉真题。

        

        真题是比较宝贵的,一般只能获得几年或者什么都得不到。

        因此,尤其不建议在前期就开始做真题。当然前期或者中期可以简单看看真题,了解一下考试范围。

        对于真题的研究务必要仔细。可以先模拟考试环境,做一遍真题。考完之后分析自己什么地方出错了,什么地方的知识点掌握的比较薄弱,然后对应的去学习。

        同时补充和加强自己的算法模版,把真题中遇到的有价值的算法整理进去。

        如果找不到任何真题,那么可以做一下同一学校相似专业的题目(如果都考数据结构),例如计算机可以做一下软件工程的题目。还可以做一下报考学校本科的期末考试题,相关的其他资料等等。

        一般即使没有真题流出,也会出现考过的同学们写的“回忆版”真题。虽然不能用做考试,但用来复习知识足够了。

        

        到考试前几天,主要的任务是回顾真题和复习模版。注意模版的内容一定要保证正确,并且你要知道如何使用。

        最后,以积极的心态应对考试。祝同学们考个好成绩~

注:

这只是其中一种学习方法,并不代表所有人都要按照这个方法学习。



您还可以在以下平台找到我们

你点的每个在看,我都认真当成了喜欢

数据结构1800题1. 算法的计算量的大小称为计算的( )。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于( )【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2) 这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分) 【武汉交通科技大学 1996 一、1( 4分)】 4.一个算法应该是( )。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是( )【南京理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是( )【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为( )两大类。【武汉交通科技大学 1996 一 、4(2分)】 A.动态构、静态构 B.顺序构、链式构 C.线性构、非线性构 D.初等构、构造型
1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的① 、数据信息在计算机中的② 以及一组相关的运算等的课程。 ① A.操作对象   B.计算方法  C.逻辑构  D.数据映象 ② A.存储构 B.关系 C.运算 D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是① 的有限集合,R是D上的② 有限集合。 ① A.算法 B.数据元素 C.数据操作 D.数据对象 ② A.操作 B.映象 C.存储 D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成 。 A.动态构和静态构 B.紧凑构和非紧凑构 C.线性构和非线性构 D.内部构和外部构 4. 算法分析的目的是① ,算法分析的两个主要方面是② 。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是① ,它必具备输入、输出和② 等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑构包括 、 、 和 四种类型,树形构和图形构合称为 。 2. 在线性构中,第一个点 前驱点,其余每个点有且只有 个前驱点;最后一个点 后续点,其余每个点有且只有 个后续点。 3. 在树形构中,树根点没有 点,其余每个点有且只有 个直接前驱点,叶子点没有 点,其余每个点的直接后续点可以 。 4. 在图形构中,每个点的前驱点数和后续点数可以 。 5. 线性构中元素之间存在 关系,树形构中元素之间存在 关系,图形构中元素之间存在 关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0;j<n; j++) A[i][j]=0; 8. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0; j<i; j++) A[i][j]=0; 9. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 s=0; for (i=0;i<n;i++) for (j=0;j<n;j++) for (k=0;k<n;k++) s=s+B[i][j][k]; sum=s; 10. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 int i=0,s=0; while (s<n) { i++; s+=i; //s=s+i } 11. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 i=1; while (i<=n) i=i*2;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值