工程领域:软件工程
考试课目: 数据结构
《数据结构》考试大纲
一、 题目类型
1. 单项选择题; 2. 填空题; 3. 简答题;
4. 算法填空题; 5. 阅读算法题; 5. 编写算法题(PASCAL或C或C++)。
二、考试内容及基本要求
1.绪论
(1) 了解数据元素和数据结构的基本概念;
(2) 掌握算法的定义、算法的设计目标;
(3) 了解算法的时间代价和空间代价;
(4) 熟练掌握用C语言描述算法的方法,能够使用C语言编写程序。
2. 线性表
(1) 了解线性表的逻辑结构特性,以及线性表的两种存储实现方式;
(2) 熟练掌握顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算;
(3) 了解链表有单链表、循环单链表、双向链表之分,了解各种链表的特点;
(4) 掌握单链表的结构和特点;
(5) 熟练掌握单链表的抽象数据类型定义、单链表的插入与删除等算法;
(6) 掌握带表头结点的单链表的优点和相应操作的实现;
(7) 掌握循环链表的特点,以及用循环链表解决问题的方法;
(8) 掌握双向链表的特点,双向链表的定义及相关操作的实现,掌握用双向链表解决问题的方法。
3. 栈和队列
(1) 熟练掌握栈的定义、栈的特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现,特别注意栈空和栈满的条件;
(2) 熟练掌握队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现,特别是循环队列中队头与队尾指针的变化情况。
4. 串
(1) 了解字符串的定义及基本运算。
5. 数组和广义表
(1) 了解二维数组的按行顺序存储与按列顺序存储;
(2) 掌握稀疏矩阵的定义及其数组实现,掌握稀疏矩阵的三元组表示;
(3) 掌握广义表的基本概念和操作。
6. 树与二叉树
(1) 了解树和森林的概念,包括树的定义、树的术语;
(2) 掌握二叉树的概念、性质、特性及二叉树的表示,几种特殊形态的二叉树;
(3) 熟练掌握二叉树的存储结构及遍历方法;
(4) 掌握树与二叉树的转换,森林与二叉树的转换;
(5) 掌握从二叉树遍历结果得到二叉树的方法;
(6) 掌握霍夫曼树的实现方法、构造霍夫曼编码的方法及带权路径长度的计算。
7. 图
(1) 了解图的基本概念和术语;
(2) 了解生成树的概念;
(3) 掌握图的邻接矩阵和邻接表的存储结构;
(4) 了解图的两种遍历方法,包括深度优先搜索和广度优先搜索方法;
(5) 掌握构造最小生成树的Prim方法和Kruskal方法;
(6) 掌握求解关键路径的方法;
(7) 理解如何用Dijkstra方法求解单源最短路径问题。
8. 动态存储管理
不要求
9.查找
(1) 熟练掌握静态查找表的顺序搜索和折半搜索算法及其性能分析方法;
(2) 了解索引顺序表的分块查找方法;
(3) 熟练掌握二叉查找树的表示、搜索、插入、删除算法及其性能分析方法;
(4) 熟练掌握散列法,包括散列函数的构造、解决冲突的方法。
10. 内部排序
(1) 掌握排序的基本概念和性能分析方法;
(2) 掌握直接插入排序、折半插入排序、希尔排序等的排序算法;
(3) 掌握起泡排序和快速排序等排序算法;
(4) 掌握简单选择排序的排序算法;
(5) 掌握归并排序的排序算法;
(6) 了解基数排序方法;
(7) 熟练掌握堆的定义,堆的建立、堆的插入与删除、堆的向上和向下调整等算法;
(8 )掌握各种排序方法的性能比较,包括时间和空间占用。
三、 参考教材
《数据结构》(C语言版),严蔚敏著,清华大学出版社