一、考试要求:
本课程要求掌握数据结构的基本理论知识,常用数据结构及 对应的基本算法, 以及数据结构的程序实现技能。内容包括线性 表、栈、队列、树、图等常见结构的逻辑结构、存储结构和对应 的常用基本算法, 以及查找和排序的基本概念和常用算法。会做 简单的算法分析, 包括算法的时间代价和空间代价。会分析研究 计算机加工的数据结构的特性, 以便为应用涉及的数据选择适当 的逻辑结构、存储结构及相应的算法。
课程考试中既测试对基本知识、基本理论的掌握程度,又测 试对基本知识与基本理论的灵活运用能力。
二、考试要点:
1.绪论
(1) 数据结构基本概念和术语;
(2) 算法描述的方法;
(3)逻辑结构、存储结构及数据运算三方面的要领及相互 关系;
(4) 算法复杂度的分析方法。
2.线性表
(1) 线性表的逻辑特性;
(2) 两类不同的存储结构(顺序和链式存储结构) 的异同;
(3) 单链表、循环链表、双向链表的特点;
(4) 线性表在顺序存储结构中实现基本运算(查找、插入、 删除、合并等)的算法及分析;
(5) 线性表在链式存储结构中实现基本运算(查找、插入、 删除、合并等)的算法及分析;
(6)用时间和空间复杂度分析线性表的特点。
3.栈和队列
(1) 栈和队列的基本概念;
(2) 栈和队列在存储结构上的基本运算的实现;
(3) 循环队列中对边界条件的处理;
(4) 栈的典型应用并能编程实现。
4.串
(1) 串的逻辑结构定义;
(2) 串的基本运算及其实现;
(3) 串的堆分配存储结构;
(4) 串的模式匹配算法。
5.数组和广义表
(1) 数组的逻辑结构和存储结构;
(2) 数组在以行为主的存储结构中地址的计算方法;
(3) 特殊矩阵的压缩存储方式及下标变换公式;
(4) 稀疏矩阵压缩存储方法的特点和适用范围,三元组表 示的稀疏矩阵进行矩阵运算时采用的处理方法。
6.树和二叉树
(1) 树的定义和基本术语;
(2) 二叉树的定义;
(3) 二叉树的结构特性及相应的证明方法;
(4) 二叉树的各种存储结构特点及使用范围;
(5) 二叉树的各种遍历算法;
(6) 线索二叉树的定义;
(7) 树的存储结构;
(8) 树和二叉树的转换方法;
(9) 最优二叉树的特性;
(10) 建立最优二叉树和实现 Huffman 编码的方法。
7.图
(1) 图的基本概念;
(2) 图的两种常用的存储结构特点及实现;
(3) 图的两类遍历算法: 深度优先、广度优先;
(4) 图的应用:最小生成树、最短路径的算法实现。
8.查找
(1) 静态查找表和动态查找表的定义;
(2)顺序查找、二分查找以及块查找的基本思想和算法实 现;
(3) 二叉排序树的概念及查找过程;
(4)哈希查找的基本思想、哈希函数的构造方法、处理冲 突的方法;
(5) 各种算法的时间性能(平均查找长度)分析。
9.排序
(1) 排序的基本概念、排序算法的稳定性;
(2)冒泡排序、插入排序、选择排序、快速排序、希尔排
序和堆排序的基本思想、排序过程、算法实现、时间和空间性能 的比较分析结论;
(3) 归并排序和基数排序的基本思想。
三、参考书目
《数据结构(C 语言版) (第2 版) 》, 严蔚敏、李冬梅、 吴伟民,人民邮电出版社,2016 年, ISBN:9787115379504