研究生数据结构重点

一、线性表

链表插入、删除节点时的指针操作(选择题);

双向链表等一些相对复杂的链表的操作(综合应用题)。

二、栈、队列和数组

1.栈与队列FILO和FIFO的特点。

针对栈FILO的特点,进栈出栈序列(选择题);

2.栈和队列的顺序和链式存储结构:

不同存储结构下栈顶指针、队首指针以及队尾指针的操作。

循环队列判满和判空的2种判断方法。

3.特殊矩阵的压缩存储:

二维矩阵与一维数组相互转换时,下标的计算方法,

与对角线平行的若干行上数据非零的矩阵存放在一维数组后,各个数据点相应的下标的计算。

4.利用堆栈或队列的特性,将它们作为基础的数据结构,支持实际问题求解算法的设计。

用栈解决递归问题,用队列解决图的遍历问题(综合应用题)。

三、树和二叉树。

1.树、二叉树的各种性质、树和二叉树的不同存储结构、森林、树和二叉树之间的转换、线索化二叉树、二叉树的应用(二叉排序树、平衡二叉树和Huffman树)。

森林、树以及二叉树的前中后三种遍历方式。要能进行相应的算法设计。

选择题考点:

1.满二叉树、完全二叉树节点数的计算。

2.由树、二叉树的示意图给出相应的遍历序列,依据二叉树的遍历序列还原二叉树。

3.线索化的实质。

计算采用不同的方法线索化后二叉树剩余空指针域的个数,平衡二叉树的定义、性质、建立和四种调整算法以及回溯法相关的问题。

综合应用题考点:

二叉树的遍历算法,遍历基础上针对二叉树的一些统计和操作(比如结点数统计、左右子树对换等等)。

判断某棵二叉树是否二叉排序树,

以上这些都要求能用递归的和非递归的算法解决,特别要重视非递归的算法,线索化后二叉树的遍历算法,如查找某结点线索化后的前驱或后继结点的算法以及给出Huffman编码等等。

四、图。

图以及基于图的各种定义,存储方式。

本章重点:要熟练掌握图的深度遍历和广度遍历算法,这是用图来解决应用问题时常用的算法基础。需要掌握基于图的多个算法,能够以手工计算的方式在一个给定的图上执行特定的算法求解问题。

常见的应用问题直接给出或经过抽象,会成为下列问题:

最小生成树求解(PRIM算法和KRUSKAL算法,两种方法思想都很简单,但要注意不要混淆这两种方法),

拓扑排序问题(这里会用到数组实现的链表,可以注意一下),

关键路径问题(数据结构的较大难点,要把概念理解透,能做出表格找出关键路径),

最短路径问题(有重要的应用背景,也是贪心法不多的能给出最优解的典型问题之一)。

五、查找。

关键字、主关键字、次关键字的含义;

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

六、排序。

既包括内部排序,又包括外部排序,排序既是重点,又是难点。

排序算法众多,光大纲上列出的内部排序就有9种,还要再加上外部排序,各种不同算法还有相应的一些概念定义需要记住。

选择题:

不同排序算法的复杂度,给定数列要求给出某种特定排序方法运行一轮后的排序结果,或者给出初始数列和一轮排序结果要求选择采用的排序算法,给定时间、空间复杂度要求以及数列特征要求选择合适的排序算法等等。

综合应用题:

与数组结合来考查。

打赏鼓励一下。