荟萃馆

位置:首页 > 范本 > 校园

计算机考研数据结构的复习要点

校园1.84W

考生们在进行计算机考研的复习阶段时,需要把数据结构的复习要点了解清楚。小编为大家精心准备了计算机考研数据结构的复习重点,欢迎大家前来阅读。

计算机考研数据结构的复习要点

  计算机考研数据结构重点:二叉树

二叉树是数据结构中的重点内容,在这两年的考试中也将二叉树作为重点内容来考查。二叉树这部分内容要求大家掌握二叉树的定义、性质、存储结构、遍历、线索化、森林和二叉树的转换等内容。算法的重点是二叉树的遍历及其应用,这也是二叉树这部分的重点和难点。遍历是二叉树各种操作的基础,可以在遍历过程中对结点进行各种操作。例如:求二叉树结点总数,建立二叉树,建立二叉树的存储结构等。二叉树的很多算法是在遍历算法基础上改造完成的,这就要求大家在复习时,熟练掌握二叉树遍历的递归和非递归算法。

下面为大家介绍一下二叉树的几种遍历方法:

由二叉树的定义可知,一颗二叉树由根节点及左、右子树三个基本部分组成,因此,只要依次遍历这三部分,就可以遍历整个二叉树。

1.先序遍历

先序遍历的递归过程为:若二叉树为空,遍历结束。

(1)访问根节点;

(2)先序遍历根节点的左子树;

(3)先序遍历根节点的右子树。

2.中序遍历

中序遍历的递归过程为:若二叉树为空,遍历结束。否则,

(1)中序遍历根节点的左子树;

(2)访问根节点;

(3)中序遍历根节点的右子树。

3.后序遍历

后序遍历的递归过程为:若二叉树为空,遍历结束。否则,同济大学四平路

(1)后序遍历根节点的左子树;

(2)后序遍历根节点的右子树;

(3)访问根节点。

层次遍历

二叉树的层次遍历,是指从二叉树的第一层(根结点)开始,从上至下逐层遍历,在同一层中,则按从左到右的顺序对结点逐个访问。在进行层次遍历时,对一层结点访问完后,再按照它们的访问次序对各个结点的左孩子和右孩子顺序访问,这样一层一层进行,先遇到的结点先访问,这与队列的操作原则比较吻合。因此,在进行层次遍历时,可设置一个队列结构,遍历从二叉树的根结点开始,首先将根结点指针入队列,然后从对头取出一个元素,每取一个元素,执行下面两个操作:

(1)访问该元素所指结点;

(2)若该元素所指结点的左、右孩子结点非空,则将该元素所指结点的左孩子指针和右孩子指针顺序入队。

此过程不断进行,当队列为空时,二叉树的层次遍历结束。

下面大家来看二叉树遍历这部分在考试中常考题型

1.由二叉树的两个遍历序列的组合(先序序列和中序序列)、(中序序列和后序序列)、(层次序列和中序序列)构造该二叉树或求其他遍历序列是一种常见的题型。需要注意的是已知二叉树的先序序列和后序序列不能唯一确定该二叉树。

2.以遍历为基础的二叉树算法设计是考试的重点和难点。常见的试题有以下几类:

(1)基于二叉树遍历的递归算法

这类题目的特点是直接根据三种递归算法改写,修改访问语句来实现。例如:求二叉树的结点个数。

(2)基于二叉树层次遍历的算法

这类题目有求二叉树的高度,求二叉树最大宽度等。

(3)基于顺序存储的二叉树遍历算法

例如:求顺序存储的满二叉树中序遍历的非递归算法。

(4)其他二叉树遍历算法

例如:左、右子树交换等。

大家要重点掌握这些以遍历为基础的二叉树算法题目,这就要求大家多做练习,通过习题训练加深理解,掌握解题思路和技巧,提高解题能力。

另外,现在大家开始冲刺复习了,选择一本涵盖全面、与真题题型一致、题目难度和真题难度高度相近,并对这两年的考试试题进行了详细分析的全真模拟试题集,是此时冲刺的最佳帮手,可以帮助你查缺补漏,显著提高应试能力。

  计算机考研暑期复习注意事项

(1)注重实际解题能力和技巧的提升。计算机专业考研时候的考察重点无疑在于考生解决问题的能力。对于知识点的熟练掌握只是基础,是为实际解决问题提供跳板。在牢固掌握基础知识的同时,对解体思路和方法进行提炼,并进一步学会在分析问题、解决问题的过程中灵活运用才是取得高分的关键。

(2)密切关注大纲变化。最新的考试大纲大约在8、9月份出台,大纲出台后需仔细研究新大纲的变化,并对自己的复习进度进行调整。在按照新大纲的变化调整复习的侧重点的同时,要特别注意重视新增的考点。

(3)重视历年真题。研究历年真题,一方面可以对考题的`具体形式、各个题型的设置有一定了解,做到知己知彼;另一方面还可以对照真题把握老师的出题习惯与重点,并查找自己的薄弱之处,进一步查漏补缺。

炎炎夏日,难免产生浮躁情绪,如果再遇上不会做的题难免心理急躁,更容易出错。这就要求考生保持平和之心以及持之以恒的学习态度,把复习进度脚踏实地落到实处。

  计算机考研数据结构重难点及复习建议

一、重难点解析和复习建议

数据结构的考查目标定位为掌握数据结构的基本概念、基本原理和基本方法,掌握数据的逻辑结构、存储结构以及基本操作的实现;能够对算法进行基本的时间复杂度和空间复杂度的分析;能够运用数据结构的基本原理和方法进行问题的分析求解,具备采用C、C++或JAVA语言设计程序与实现算法的能力。

当然,考生也不必因此而专门复习一遍C或C++程序设计,毕竟复习时间有限,而且数据结构要求的重点在于算法设计的能力,而不是编写代码的能力,因此,只要能用类似伪代码的形式把思路表达清楚就行,不用强求写出一个没有任何语法错误的程序。

下面我们来解析一下知识点:

线性表这一章里面的知识点不多,但要做到深刻理解,能够应用相关知识点解决实际问题。链表上插入、删除节点时的指针操作是选择题的一个常考点,诸如双向链表等一些相对复杂的链表上的操作也是可以出现在综合应用题当中的。

栈、队列和数组可以考查的知识点相比链表来说要多一些。最基本的,是栈与队列FILO和FIFO的特点。比如针对栈FILO的特点,进栈出栈序列的问题常出现在选择题中。其次,是栈和队列的顺序和链式存储结构,这里一个常考点是不同存储结构下栈顶指针、队首指针以及队尾指针的操作,特别是循环队列判满和判空的2种判断方法。再次,是特殊矩阵的压缩存储,这个考点复习的重点可以放在二维矩阵与一维数组相互转换时,下标的计算方法,比如与对角线平行的若干行上数据非零的矩阵存放在一维数组后,各个数据点相应的下标的计算。这一章可能的大题点,在于利用堆栈或队列的特性,将它们作为基础的数据结构,支持实际问题求解算法的设计,例如用栈解决递归问题,用队列解决图的遍历问题等等。

树和二叉树:这一章中我们从顺序式的数据结构,转向层次式的数据结构,要掌握树、二叉树的各种性质、树和二叉树的不同存储结构、森林、树和二叉树之间的转换、线索化二叉树、二叉树的应用(二叉排序树、平衡二叉树和Huffman树),重点要熟练掌握的,是森林、树以及二叉树的前中后三种遍历方式,要能进行相应的算法设计。这一部分是数据结构考题历来的重点和难点,复习时要特别关注。一些常见的选择题考点包括:满二叉树、完全二叉树节点数的计算,由树、二叉树的示意图给出相应的遍历序列,依据二叉树的遍历序列还原二叉树,线索化的实质,计算采用不同的方法线索化后二叉树剩余空指针域的个数,平衡二叉树的定义、性质、建立和四种调整算法以及回溯法相关的问题。常见的综合应用题考点包括:二叉树的遍历算法,遍历基础上针对二叉树的一些统计和操作(比如结点数统计、左右子树对换等等),判断某棵二叉树是否二叉排序树,以上这些都要求能用递归的和非递归的算法解决,特别要重视非递归的算法,线索化后二叉树的遍历算法,如查找某结点线索化后的前驱或后继结点的算法以及给出Huffman编码等等。

图:在这一章中需要识记的是图以及基于图的各种定义,存储方式。要熟练掌握图的深度遍历和广度遍历算法,这是用图来解决应用问题时常用的算法基础。需要掌握基于图的多个算法,能够以手工计算的方式在一个给定的图上执行特定的算法求解问题。常见的应用问题直接给出或经过抽象,会成为下列问题:最小生成树求解(PRIM算法和KRUSKAL算法,两种方法思想都很简单,但要注意不要混淆这两种方法),拓扑排序问题(这里会用到数组实现的链表,可以注意一下),关键路径问题(数据结构的较大难点,要把概念理解透,能做出表格找出关键路径),最短路径问题(有重要的应用背景,也是贪心法不多的能给出最优解的典型问题之一)。

查找:这一章,需要识记关键字、主关键字、次关键字的含义;静态查找与动态查找的含义及区别;平均查找长度ASL的概念念及在各种查找算法中的计算方法和计算结果,特别是一些典型结构的ASL值,B-树的概念和基本操作冲突解决方法的选择和冲突处理过程的描述,B+树的概念(新增考点),特别要注意B-树和B+树概念的对比,以及Hash表相关的概念。要熟练掌握顺序表、链表、二叉树上的查找方法,特别要注意顺序查找、二分查找的适用条件(比如链表上用二分查找就不合适)和算法复杂度。

排序:排序算法众多,今年大纲还加上了外部排序,总共10种,各种不同算法还有相应的一些概念定义需要记住。选择题常见的问题包括:给定数列要求给出某种特定排序方法运行一轮后的排序结果,或者给出初始数列和一轮排序结果要求选择采用的排序算法,给定时间、空间复杂度要求以及数列特征要求选择合适的排序算法等等。如果排序这一考点出现在综合应用题中则常与数组结合来考查。