标题：实用数据结构基础（第三版）
基本信息
书名：实用数据结构基础（第三版）
套系名称：21世纪高校计算机应用技术系列规划精品教材
出版社：中国铁道出版社
书号：978-7-113-12342-0　
版次：3版1次　
开本：16开　
页码：320页
作者：陈元春 王中华 张亮 王勇 
出版时间：2011-02-10 
定价：30 元
内容简介
本书是一本全面介绍数据库系统理论、技术和数据库应用程序开发方法的教科书。全书由四部分构成，分为基础篇、设计篇、系统篇和开发篇。
基础篇主要介绍数 据库的基本概念、数据库系统结构、基本数据模型、关系数据库和关系数据库语言SQL；设计篇以关系型数据库为例，介绍了关系数据库规范化理论、关系数据库的设计；系统篇介绍了关系数据库的安全本书共分12章，第1章介绍数据的逻辑结构、存储结构与算法的基本概念；第2～10章分别介绍线性表、栈、队列、串、多维数组和广义表、树和二叉树、图、查找、排序等内容；第11章为数据结构课程实训；第12章为数据结构课程设计。
本书对数据结构的概念和原理的阐述通俗易懂，例子翔实，习题丰富；对数据结构基本运算的分析，注重其实现的过程；对于书中的重要算法均给出了完整的C/C++语言源程序，并全部在VC++环境中运行通过。本书的实践性环节分为验证性实验、自主设计实验、课程实训和课程设计四个层次。本书集教材、习题、实验、实训和课程设计于一体，一册在手就能方便地进行“数据结构”课程的理论学习和实验、实训、课程设计等实践性环节的训练。
本书既可以作为计算机应用专业本科和高职高专学生数据结构学科的教科书，也可以作为成人教育、自学考试的学员和从事计算机应用的工程技术人员的参考用书。[1]
图书目录
第1章  绪论1
1.1  什么是数据结构1
1.1.1  从数据结构实验演示系统认识数据结构1
1.1.2  数据结构研究的内容2
1.2  数据的逻辑结构4
1.2.1  基本概念5
1.2.2  逻辑结构的描述6
1.3  数据的存储结构7
1.4  算法和算法分析8
1.4.1  算法特性8
1.4.2  算法的效率9
1.4.3  算法效率的评价10
小结11
验证性实验1：数组、指针、结构体练习12
自主设计实验1：学生成绩分析程序13
单元练习114
第2章  线性表18
2.1  线性表的定义与运算18
2.1.1  线性表的定义18
2.1.2  线性表的基本操作19
2.2  线性表的顺序存储20
2.2.1  顺序表20
2.2.2  顺序表上基本运算的实现21
2.3  线性表的链式存储25
2.3.1  线性链表25
2.3.2  线性链表上基本运算的实现26
2.3.3  循环链表33
2.3.4  双向链表34
小结35
验证性实验2：线性表子系统36
自主设计实验2：多项式求和39
单元练习240
第3章  栈45
3.1  栈的定义和运算45
3.1.1  栈的定义45
3.1.2  栈的运算46
3.2  栈的存储和实现46
3.2.1  顺序栈47
3.2.2  链栈49
3.3  栈的应用举例50
3.3.1  数制转换51
3.3.2  表达式求值52
3.3.3  子程序调用55
3.3.4  递归调用56
3.3.5  中断处理和现场保护57
小结58
验证性实验3：栈子系统58
自主设计实验3：后缀表达式求值63|
单元练习363
第4章  队列67
4.1  队列的定义和运算67
4.1.1  队列的定义67
4.1.2  队列的基本运算68
4.2  队列的存储和实现68
4.2.1  顺序队列68
4.2.2  链队列72
4.3  队列应用举例74
小结76
验证性实验4：队列子系统76
自主设计实验4：循环队列的实现和运算80
单元练习481
第5章  串85
5.1  串的定义和运算85
5.1.1  串的定义85
5.1.2  串的输入与输出86
5.1.3  串的运算87
5.2  串的表示和实现87
5.2.1  定长顺序存储88
5.2.2  链接存储89
5.2.3  串的堆分配存储结构89
5.3  串运算的实现91
小结94
验证性实验5：串子系统95
自主设计实验5：字符串分割处理99
单元练习599
第6章  多维数组和广义表104
6.1  多维数组104
6.1.1  逻辑结构104
6.1.2  存储结构105
6.2  特殊矩阵的压缩存储106
6.2.1  对称矩阵107
6.2.2  三角矩阵108
6.3  稀疏矩阵109
6.3.1  稀疏矩阵的存储109
6.3.2  稀疏矩阵的算法111
6.4  广义表115
6.4.1  广义表的定义和运算115
6.4.2  广义表的首尾存储法117
6.4.3  广义表的算法118
小结120
验证性实验6：稀疏矩阵和广义表子系统120
自主性实验6：稀疏矩阵十字链表的存储127
单元练习6127
第7章  树和二叉树131
7.1  树的定义和术语131
7.1.1  树的定义131
7.1.2  基本术语132
7.2  二叉树133
7.2.1  二叉树的定义133
7.2.2  二叉树的性质134
7.2.3  二叉树的存储135
7.3  遍历二叉树和线索二叉树139
7.3.1  遍历二叉树139
7.3.2  恢复二叉树142
7.3.3  线索二叉树144
7.4  二叉树的转换146
7.4.1  一般树转换为二叉树146
7.4.2  森林转换为二叉树148
7.4.3  二叉树转换为树和森林148
7.5  二叉树的应用149
7.5.1  二叉树的基本应用149
7.5.2  标识符树与表达式151
7.6  哈夫曼树及其应用152
7.6.1  哈夫曼树的引入153
7.6.2  哈夫曼树的建立155
7.6.3  哈夫曼编码157
小结158
验证性实验7：二叉树子系统159
自主设计实验7：标识符树与表达式求值165
单元练习7165
第8章  图171
8.1  图的定义和基本操作171
8.1.1  图的定义171
8.1.2  图的相关术语172
8.1.3  图的基本操作173
8.2  图的存储表示174
8.2.1  邻接矩阵174
8.2.2  邻接表175
8.2.3  十字链表178
8.3  图的遍历180
8.3.1  深度优先搜索180
8.3.2  广度优先搜索181
8.4  图的连通性183
8.4.1  无向图的连通分量和生成树183
8.4.2  最小生成树184
8.5  最短路径186
8.6  有向无环图及其应用189
8.6.1  拓扑排序189
8.6.2  关键路径190
小结193
验证性实验8：图子系统194
自主设计实验8：最小生成树198
单元练习8198
第9章  查找203
9.1  查找的基本概念203
9.2  静态查找表204
9.2.1  顺序查找205
9.2.2  二分查找206
9.2.3  分块查找209
9.3  动态查找表210
9.3.1  二叉排序树210
9.3.2  平衡二叉树215
9.4  哈希表218
9.4.1  哈希表与哈希方法218
9.4.2  哈希函数的构造方法219
9.4.3  处理冲突的方法220
小结222
验证性实验9：查找子系统223
自主设计实验9：哈希查找228
单元练习9229
第10章  排序233
10.1  概述233
10.2  插入排序234
10.2.1  直接插入排序234
10.2.2  二分插入排序236
10.2.3  希尔排序237
10.3  快速排序法238
10.3.1  冒泡排序239
10.3.2  快速排序240
10.4  选择排序243
10.4.1  简单选择排序243
10.4.2  树形选择排序244
10.4.3  堆排序245
10.5  归并排序247
10.6  各种排序方法的比较249
小结249
验证性实验10：排序子系统250
自主设计实验10：双向冒泡排序257
单元练习10258
第11章  数据结构课程实训262
11.1  系统设计的要求262
11.1.1  系统总体结构设计263
11.1.2  系统详细设计264
11.1.3  系统调试和维护266
11.2  文件的包含处理267
11.2.1  什么是文件包含267
11.2.2  如何对“数据结构实验系统”进行文件包含269
11.2.3  数据结构实验系统主控模块269
11.3  数据结构课程实训任务书270
第12章  数据结构课程设计272
12.1  课程设计的目的与内容272
12.1.1  课程设计的目的272
12.1.2  课程设计的内容273
12.1.3  课程设计报告273
12.1.4  课程设计的考核274
12.2  课程设计的要求275
12.3  A类题目276
12.3.1  课题A1：多项式运算276
12.3.2  课题A2：求最小生成树（基于邻接矩阵存储）277
12.3.3  课题A3：非递归求解Hanoi问题278
12.3.4  课题A4：迷宫问题279
12.3.5  课题A5：中缀表达式转后缀并求值（运算对象为个位数）280
12.3.6  课题A6：二叉树的层次遍历281
12.4  B类题目282
12.4.1  课题B1：哈希查找的实现与分析282
12.4.2  课题B2：有向无环图的判定及拓扑排序284
12.4.3  课题B3：浮点数的IEEE 754标准格式转换285
12.4.4  课题B4：文件记录读取并排序286
12.4.5  课题B5：大整数运算286
12.4.6  课题B6：平衡二叉树的构造及输出286
12.4.7  课题B7：二叉树的中序线索化及其非栈非递归遍历287
12.4.8  课题B8：稀疏矩阵的运算288
12.4.9  课题B9：基于十字链表有向图的遍历289
12.5  C类题目290
12.5.1  课题C1：求AOE网的关键路径291
12.5.2  课题C2：求有向图的强连通分量292
12.5.3  课题C3：非递归方式遍历二叉树292
12.5.4  课题C4：求最小生成树（基于邻接表存储结构）293
12.5.5  课题C5：Dijkstra算法求最短路径293
12.5.6  课题C6：拼写检查器294
12.5.7  课题C7：中缀表达式转后缀并求值（运算对象为多位数）295
12.5.8  课题C8：哈夫曼编码器296
12.5.9  课题C9：马对棋盘方格的遍历及其复杂性分析298
参考文献300