考研数据结构怎么学?

何桔林何桔林最佳答案最佳答案

2015 985 计算机科学专业,初试360+,复试400+。

首先我认为你应该明白你为什么要考数据结构这门课?我想大多数人的目的应该都是希望自己在未来的工作中能有一个好点的前景和收入(虽然这么说有点俗)所以为了这个目标我们应该知道需要什么样的技能去完成这个工作。这里就要引入一个思想: 需求决定供给 如果我们要做一件事那我们首先要搞清楚我们做的这件事的需求是什么然后根据这样的需求来寻找对应的供给!

那什么又是需求呢?简单来说就是你要做的事所对应的核心能力。对于考研来说它所对应的能力就是: 在有限的时间内快速高效的解决特定的问题; 对问题进行分析、抽象、分解、优化等解决问题的能力 这也就是为什么大家要学习线性表、队列、栈等数据结构的原理以及二叉树、红黑树、B树等各种复杂数据的结构的原因了。。。而数据结构这门课程的主要任务就在于教授这些知识点及其各种应用场景下的实际应用。 所以我们可以得到这样一个结论:如果你想学好一门课程的话你就先要弄清楚这门课程的“核心”知识(或者可以叫重点)在哪里然后再着重去学习它们! 而数据结构这门课的重点就显而易见是那些复杂的数据结构和它们的应用。所以对于考研的各位而言我觉着你们只要把重点的知识搞会搞透那就已经差不多了~ 接下来我们具体分析数据结构这门课的每个部分看看哪些是重点(注:以下内容只适用于以操作系统为基础的计算机学院的考试) 一、线性表 (重点) 1.1 顺序存储 (重点) 1.2 链式存储 (重点) 2 数组与矩阵 3 堆 二、栈和队列 (重点) 三、递归与遍历 四、搜索 五、排序 六、查找算法 七、图的基本概念 八、最短路径 九、生成树与拓扑排序 十、最小生成树与 prim 算法 十一、网络最大流和 cormen 中的 max flow/min cut algorithm 十二、bubble sort, insertion sort, qucik select ,merge sort 和 quick merge 的算法实现 十三、heap sort 算法实现 十四、bryant tree packing 十五、bintree, binary search tree , bbstree 十六、红黑树

林灏辉林灏辉优质答主

我去年备考的时候,数据结构看的是严蔚敏的《数据结构》(第二版)和《算法导论》, 建议题主也看一下。因为数据结构和计算机编程语言不同——C、C++等语言是描述一种具体的运算方式(即表达式或语句如何构成,比如“for”循环,“do while()”);而数据结构则是描述在特定环境中(如顺序存储、链式存储)下的一种操作行为本身(比如删除、查找)以及相关的约束条件(对于链表而言就是头结点的存在性)。

我来回答
请发表正能量的言论,文明评论!