如何以考研为目的学习数据结构
重点难点分析及复习建议。统考大纲的考试目标是掌握数据结构的基本概念、原理和方法,掌握数据的逻辑结构、存储结构和基本运算的实现;能够分析算法的基本时间复杂度和空间复杂度;能运用数据结构的基本原理和方法分析和解决问题,具备用C、C++或JAVA语言设计程序和实现算法的能力。当然,考生也不必因为这个而特意去复习C或C++编程。毕竟复习时间有限,数据结构要求的重点在于算法设计能力,而不是写代码的能力。所以,只要你能把自己的想法用伪代码的形式表达清楚,就不用强行去写一个没有任何语法错误的程序。
线性表。线性表这一章知识点不多,但是要有很深的理解,并且能够应用相关知识点解决实际问题。在链表上插入或删除节点时的指针操作是选择题的常见考点,一些相对复杂的链表操作如双向链表也会出现在综合应用题中。
栈、队列、数组比链表能考查更多的知识点。最基本的是堆栈和队列FILO和FIFO的特性。比如根据栈FILO的特点,多项选择题中经常出现栈的进出顺序问题。其次是栈和队列的顺序和链式存储结构。这里常见的一个测试点是不同存储结构下栈顶指针、队列头指针和队列尾指针的操作,尤其是判断循环队列是满还是空的两种方法。第三,是特殊矩阵的压缩存储。这个考点复习的重点可以放在二维矩阵和一维数组相互转换时下标的计算方法上,比如平行于对角线的几行上有非零数据的矩阵存入一维数组后,每个数据点对应下标的计算。本章可能出现的大问题是利用堆栈或队列的特性作为基本的数据结构来支持实用问题求解算法的设计,比如利用堆栈解决递归问题,利用队列解决图的遍历问题等等。