模块一 C++语言基础 1
任务一 一个简单的C++语言程序 2
子任务1 建立主函数 2
子任务2 C++语言的输入、输出 5
子任务3 函数的调用与指针操作 7
任务二 面向对象的程序设计 10
子任务1 类的定义 10
子任务2 构造函数和析构函数 13
子任务3 继承的实现 16
任务三 VC 6.0简介 20
子任务1 建立文件和程序的编译、链接、执行 20
子任务2 新建类及增加成员 25
学材小结 27
模块二 数据结构与算法 31
任务一 学习数据结构的必要性 32
任务二 数据结构 34
子任务1 基本术语 34
子任务2 算法设计的特性和算法设计的要求 37
子任务3 算法效率的度量 38
学材小结 39
模块三 线性表 43
任务一 理解线性表的逻辑结构 44
子任务1 线性表的逻辑定义和特征 44
子任务2 线性表的操作 45
任务二 线性表的顺序存储结构 48
子任务1 顺序表的定义 48
子任务2 顺序表的几种基本操作 50
任务三 线性表的链式存储结构(链表) 54
子任务1 链表的概念与特点 54
子任务2 单链表的基本运算 55
子任务3 单循环链表和双向链表 61
学材小结 68
模块四 栈和队列 71
任务一 栈的概念和基本操作 72
子任务1 栈的概念 72
子任务2 栈的主要操作 75
子任务3 栈的应用 79
任务二 队列的概念和操作 85
子任务1 队列的概念 85
子任务2 队列的操作 88
子任务3 循环队列 91
学材小结 95
模块五 数组、串和广义表 97
任务一 数组 98
子任务1 数组的定义 98
子任务2 数组的基本操作 101
子任务3 特殊矩阵的压缩存储 105
任务二 串 111
子任务1 串的概念 111
子任务2 串的存储 115
子任务3 串的模式匹配算法 117
任务三 广义表 122
学材小结 125
模块六 二叉树和树 127
任务一 二叉树 128
子任务1 二叉树的概念和性质 128
子任务2 二叉树的存储 131
子任务3 二叉树的遍历 135
子任务4 哈夫曼树 142
任务二 树和森林 149
子任务1 树和森林的概念 149
子任务2 树和森林的存储 152
子任务3 树(森林)与二叉树的转换和树(森林)的遍历 159
学材小结 167
模块七 图 171
任务一 图的定义和术语 172
任务二 图的存储结构 175
子任务1 邻接矩阵法 175
子任务2 邻接表和逆邻接表 178
子任务3 十字链表 181
任务三 图的遍历算法 185
子任务1 图的深度遍历 185
子任务2 图的广度遍历 189
任务四 图的应用 192
子任务1 最小生成树 192
子任务2 最短路径 203
子任务3 拓扑排序 208
学材小结 215
模块八 查找 219
任务一 查找的基本概念 220
任务二 静态查找 221
子任务1 顺序表的查找 221
子任务2 折半查找 224
子任务3 索引查找 227
任务三 动态查找 229
子任务1 二叉排序树 229
子任务2 哈希表 234
学材小结 242
模块九 内部排序 245
任务一 内部排序的概念和排序的方法 246
任务二 插入排序 248
子任务1 直接插入排序 248
子任务2 表插入排序 251
子任务3 希尔插入 253
任务三 交换排序 255
子任务1 冒泡排序 255
子任务2 快速排序 258
任务四 选择排序 261
子任务1 简单选择排序 261
子任务2 堆排序 264
任务五 归并排序 270
任务六 基数排序 273
学材小结 277
参考文献 279