《数据结构》
描述语言:
本考试课程的描述语言建议为C或C++语言,如果没有学过C或C++可以采用其它的通用程序设计语言。在编写程序时,必须说明基本的程序设计思想,并附以必要的注解。必须按照程序书写规范编写程序,如保留字必须大写,嵌套语句必须注意对齐等等。另外,编写程序必须采用规范的程序设计语言,采用类-C或类-C++语言编写的程序,一律不予承认。
复习大纲:
1、 计算机与算法的基本概念
算法、算法正确性、复杂性
算法的时间与空间复杂性级别
递归及循环程序设计的算法复杂性的求解及基础方法
最坏情况下、平均情况下的时间复杂性的求法
2、 抽象数据类型和数据结构导论
数据类型、数据结构和表示、实现,固有数据类型的特点
抽象数据类型的说明、高级语言对抽象数据类型的支持。抽象数据类型的优点:简单、完整、独立、安全等。
C++、PASCAL、ADA等高级语言支持抽象数据类型的能力、相同数据类型和类属数据类型。
3、 线性表、栈和队列
顺序分配、链接分配的表示和实现。
各种链表:单链、双链、多链、循环链表、十字链表等。
栈、队列、双向队列及优先队列。
表达式计算、子集和问题等。
表、队、栈等各种情况的时间及空间复杂性分析
4、 树及二叉树
遍历、存储、基本概念、性质、树的应有举例。
二叉树:遍历、各种搜索树、分类二叉树、树与二叉树和转换、最优二叉树、平衡树的分析等等。
最优叶子查找树及HUFFUMAN算法。
堆及优先队列的实现等等。
各种树操作特性、性质、实现。
2-3树及AVL树、集合表示及操作
各种数及二叉树的相关操作的时间及空间复杂性分析;
5、 图的各种操作及算法分析比较
遍历:DFS/BFS/PFS/方法以及存储、基本概念、性质、
连通分量的求法;
最小生成树、最短路径;
拓扑排序、关键路径的求法及实现等;
各种图的算法的分析及比较、算法复杂性的级别等
6、 串的存储及KMP算法
存储、基本运算、样品匹配等;
KMP算法及时间及空间复杂性分析
7、 查找技术
顺序查找、有序表的查找、索引顺序查找、二分查找法、FIB0NACCI查找等
HASHING查找技术。
查最大项及次最大项的方法。
顺序统计、胜者树及败者树。
查找算法的分析及比较、算法时间及空间复杂性等。
8、 排序技术
最好、最坏、平均排序的时间复杂性分析
合并排序技术
各种排序方法:插入排序、快速排序、SHELL排序、堆及选择排序、
多关键字排序、基数排序法。
最佳排序速度
排序的时间及空间复杂性分析
9、 外部排序技术
外存及分类技术简介
缓冲区管理、初始合并串、置换选择分类技术
磁带合并:平衡合并及多阶段合并。
磁盘合并:最佳合并树模型
时间及空间复杂性分析
10、基本文件系统
文件组织:顺序、随机、直接、倒排文件
索引技术:柱面索引、盘面索引、HASHING索引、树索引。
B树及B+树
ISAM及VSAM文件。
各种文件的特点及分析
11、基本算法的设计
回溯法及分治法
查找及分解技术
动态程序及设计技术
贪心法
算法的形式描述及分析、比较、时空需求