864程序设计考试主要考察以下内容:
数据结构
绪论:数据结构的基本概念、数据的逻辑结构、存储结构,算法的定义、算法的基本特性以及算法分析的基本概念。
线性表:线性关系、线性表的定义、线性表的基本操作,线性表的顺序存储结构与链式存储结构(包括单链表、循环链表和双向链表)的构造原理,以及在两种存储结构上对线性表实施的基本操作(包括三种链表的建立、插入和删除、检索等)的算法设计。
堆栈与队列:堆栈与队列的基本概念、基本操作,堆栈与队列的顺序存储结构与链式存储结构的构造原理,以及在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作对应的算法设计。
串:串的基本概念、串的基本操作和存储结构,串的模式匹配算法和改进的KMP算法。
数组和广义表:数组的概念、多维数组的实现,对称矩阵和稀疏矩阵的压缩存储,广义表的基本概念。
树与二叉树:树的定义和性质,二叉树的概念、性质和实现,遍历二叉树和线索二叉树,树和森林,赫夫曼树及其应用,树的计数。
图:图的定义、基本概念、图的分类、常用名词术语,图的邻接矩阵存储方法、邻接表存储方法的构造原理,图的遍历操作,最小生成树、最短路径、AOV网与拓扑排序。
文件及查找:数据文件的基本概念和基本术语,数据文件的基本操作,顺序文件、索引文件、散列(Hash)文件,顺序文件的顺序查找方法、排序连续顺序文件的折半查找方法以及其他文件的基本查找方法。
内排序:排序的基本概念、排序方法的分类,插入排序法(含折半插入排序法)、选择排序法、泡排序法、快速排序法、堆积排序法、归并排序、基数排序。
结构体和共同体:结构体变量的定义和使用方法,指向结构体类型变量的指针,用指针处理链表,共同体变量的定义和使用方法,枚举类型。
位运算:位运算符和位运算,位段。
文件:文件类型指针,文件操作,包括打开、关闭、读写和定位等。
C程序设计
对C语言的基本知识有较深入的了解,掌握程序设计的基本方法,并具有综合运用所学知识分析问题和解决问题的能力。
建议:
数据结构:重点掌握各种数据结构的定义和实现算法,尤其是线性表、堆栈与队列、串、树与二叉树、图等。
C程序设计:重点掌握C语言的基本语法和编程技巧,能够编写简单的程序并解决一些基本的算法问题。
参考书籍:推荐使用《数据结构(C语言版)》和《C程序设计(第三版)》等教材进行复习。
历年真题:多做中国科学院大学864程序设计的历年真题,了解考试题型和难度,提高解题能力。