模块一 线性表及其应用 1
实训1顺序表基本操作 6
实训2线性表链式存储 11
实训3线性表逆置 14
实训4合并有序顺序表 17
实训5顺序表元素分解 19
实训6合并顺序表 21
实训7合并有序链表 22
实训8按奇偶元素分解链表 24
实训9按元素交替存储合并链表 25
实训10一元多项式的定义和实现 26
模块二 栈及其应用 32
实训1顺序栈的定义及操作 36
实训2链栈的定义及操作 39
实训3进制转换及括号匹配判断 42
实训4表达式变换与求值 48
实训5迷宫老鼠 56
实训6 N王后问题 62
实训7汉诺塔 66
模块三 队列和字符串 71
实训1循环队列的定义及操作 77
实训2链队列的定义及操作 80
实训3单字符链表的定义及操作 83
实训4重排车厢 88
实训5电路布线问题 99
实训6图元识别 107
实训7文本内容替换 112
模块四 数组和稀疏矩阵 118
实训1判断字符串是否回文 123
实训2稀疏矩阵转置 127
实训3稀疏矩阵相加 132
实训4平均成绩和标准差 136
模块五 树和二叉树 141
实训1二叉树节点定义及操作 153
实训2确定二叉树结构 158
实训3构建霍夫曼树 161
实训4用非递归法遍历二叉树 166
实训5利用霍夫曼编码树翻译原文字符 173
模块六 图的算法和应用 177
实训1连通图的深度优先遍历算法 184
实训2图的拓扑排序 189
实训3用Prim和Kruskal算法构造最小生成树 193
实训4用迪杰斯特拉算法求图的最短路径 202
模块七 查找和排序 207
实训1二叉排序树操作 216
实训2编写各种内排序算法 220
实训3散列表的构造及相关操作 225
实训4构造B-树并实现查找、删除操作 229
实训5基数的LSD排序算法 234
实训6电话号码查找问题 237
综合实训一 马尔可夫链 242
综合实训二 逗号分隔值(CSV) 253
附录A C语言基础知识 263
A.1基础知识 263
A.1.1 C语言的发展及特点 263
A.1.2简单的C语言程序 263
A.2数据类型、运算符和表达式 264
A.2.1常量和变量 264
A.2.2数据类型 265
A.2.3运算符 266
A.3控制流程 267
A.4输入/输出 274
A.5函数 276
A.5.1函数的定义 276
A.5.2函数的调用 277
A.5.3函数的声明 279
A.6指针和数组 280
A.6.1数组 280
A.6.2字符串 283
A.6.3指针 283
A.7动态内存分配 290
A.8用户自定义数据类型 291
A.9文件操作 296
附录B数据结构——CD10项目设计报告 299
参考文献 310