针值的函数、指针数组、指向指针的指针、动态内存分配与指向它的指针变量等。
结构体及应用
定义和使用结构体变量、结构体数组及应用、结构体指针及应用、用指针处理链表、共用体类型、枚举类型、使用 typedef 声明新类型名。
文件
文件的概念、文件类型指针、文件的打开与关闭、文件的读写。
3、参考书目:
《C程序设计(第五版)》,谭浩强,2017,清华大学出版社。
1、考试要求:
掌握各种类型的数据结构(包括线性表、栈、队列、串、数组、树和二叉树、图等)的定义、表示和实现;
掌握设计算法的步骤和分析方法;
掌握排序、查找、遍历、创建、插入、删除等常用算法的应用。
2、考试内容:
绪论
数据结构的概念、基本术语;算法描述及算法分析。
线性表
线性表的定义及基本运算;线性表的顺序存储结构;线性表的链式存储结构。
栈和队列
栈的定义、表示和实现,栈的应用(表达式计算、递归算法设计);队列的定义、表示和实现,队列的应用。
串
串的定义、表示与实现;串的模式匹配算法。
数组
数组的定义和运算;数组的顺序存储结构;矩阵的压缩存储。
树和二叉树
树的基本概念;二叉树的定义、性质及存储结构;遍历二叉树和线索二叉树;树和森林
(树的存储结构,树、森林与二叉树的相互转换,树和森林的遍历);哈夫曼树及其应用。
图
图的基本概念;图的存储结构(邻接矩阵、邻接表);图的遍历;图的应用(最小生成树、最短路径、拓扑排序、关键路径)。
查找
查找的基本概念;静态查找表的查找(顺序、折半、索引顺序查找);动态查找表的查找(二叉排序树、平衡二叉树、B-树和 B+树);哈希表的构造及查找;查找算法的效率分析。
排序
排序的基本概念;插入排序(直接插入、折半插入、希尔排序)、选择排序(直接选择、堆排序)、交换排序(冒泡排序、快速排序)、归并排序、基数排序;各种内部排序算法的比较;外部排序的方法。