标题：算法与数据结构：C语言描述
图书信息
出版社: 高等教育出版社; 第2版 (2006年1月1日)  《算法与数据结构:C语言描述(第2版)》
丛书名: 普通高等教育“十一五”国家级规划教材,面向21世纪课程教材
平装: 359页
正文语种: 简体中文
开本: 16
ISBN: 9787040185768
条形码: 9787040185768
尺寸: 23.2 x 18.6 x 1.4 cm
重量: 458 g
内容简介
《算法与数据结构:C语言描述(第2版)》以数据结构为主线，算法为辅线组织教学内容。全书共分10章：绪论、线性表、字符串、栈与队列、二叉树与树、集合与字典、高级字典结构、排序、图和算法分析与设计。《算法与数据结构:C语言描述(第2版)》体系完整，概念清楚，内容充实，取材适当。第一版被列入“面向21世纪课程教材”，2004年被评为“北京市高等教育精品教材”，第二版被列入普通高等教育“十一五”国家级规划教材。
新版采用“数据结构作为抽象数据类型的物理实现”观点，在内容和形式上都进行了许多改进和扩充，提高了抽象数据类型在教学中的地位和作用，更加突出了重点，还补充了习题，增加了索引。新版的第4次印刷本对书稿中的各种问题进行了认真的修改与完善，提高了全书的可读性。
由于在编写中注意到知识模块的独立性和相关性，不同专业和不同水平的学生可以根据需要组合使用。《算法与数据结构:C语言描述(第2版)》既可以作为计算机专业本科“数据结构”教材，也可以作为理工科有关专业本科和计算机专业专科学生学习相关课程的教材或教学参考书。
目录
1 绪论. 
1.1 从问题到程序? 
1.1.1 问题分析与抽象 ? 
1.1.2 程序的设计与实现 ? 
1.2 抽象数据类型 ? 
1.2.1 什么是抽象数据类型 ? 
1.2.2 意义与作用 ? 
1.2.3 举例 ? 
1.3 数据结构 ? 
1.3.1 什么是数据结构 ? 
1.3.2 数据结构的分类 ? 
1.3.3 结点与结构 ? 
1.3.4 外存数据的组织 ? 
1.4 算法 ? 
1.4.1 什么是算法 ? 
1.4.2 算法的设计 ? 
1.4.3 算法的精化 ? 
1.4.4 算法的分析 ? 
小结 ? 
习题 ? 
2 线性表? 
2.1 基本概念与抽象数据类型 ? 
2.1.1 基本概念 ? 
2.1.2 抽象数据类型 ? 
2.2 顺序表示 ? 
2.2.1 存储结构 ? 
2.2.2 运算的实现 ? 
2.2.3 分析与评价 ? 
2.2.4 顺序表空间的扩展 ? 
2.3 链接表示 ? 
2.3.1 单链表表示 ? 
2.3.2 单链表上运算的实现 ? 
2.3.3 分析与比较 ? 
2.3.4 单链表的改进和扩充 ? 
2.4 应用举例 ? 
2.4.1 Josephus问题 ? 
2.4.2 采用顺序表模拟 ? 
2.4.3 采用循环链表模拟 ? 
2.5 矩阵 ? 
2.5.1 矩阵的顺序表示 ? 
2.5.2 稀疏矩阵的表示方法 ? 
2.6 广义表与动态存储管理 ? 
2.6.1 广义表 ? 
2.6.2 结点的动态分配与回收 ? 
2.6.3 废料收集与存储压缩 ? 
小结 ? 
习题 ? 
3 字符串? 
3.1 字符串及其抽象数据类型 ? 
3.1.1 基本概念 ? 
3.1.2 抽象数据类型 ? 
3.2 字符串的实现 ? 
3.2.1 顺序表示 ? 
3.2.2 链接表示 ? 
3.3 模式匹配 ? 
3.3.1 朴素的模式匹配 ? 
3.3.2 无回溯的模式匹配 ? 
小结 ? 
习题 ? 
4 栈与队列? 
4.1 栈及其抽象数据类型 ? 
4.1.1 基本概念 ? 
4.1.2 抽象数据类型 ? 
4.2 栈的实现 ? 
4.2.1 顺序表示 ? 
4.2.2 链接表示 ? 
4.3 栈的应用 ? 
4.3.1 栈与递归 ? 
4.3.2 迷宫问题 ? 
4.3.3 表达式计算 ? 
4.4 队列及其抽象数据类型 ? 
4.4.1 基本概念 ? 
4.4.2 抽象数据类型 ? 
4.5 队列的实现 ? 
4.5.1 顺序表示 ? 
4.5.2 链接表示 ? 
4.6 队列的应用 ? 
小结 ? 
习题 ? 
5 二叉树与树? 
5.1 二叉树及其抽象数据类型 ? 
5.1.1 基本概念 ? 
5.1.2 主要性质 ? 
5.1.3 抽象数据类型 ? 
5.2 二叉树的周游 ? 
5.2.1 什么是周游 ? 
5.2.2 周游的分类 ? 
5.2.3 一个例子 ? 
5.2.4 周游的抽象算法 ? 
5.3 二叉树的实现 ? 
5.3.1 顺序表示 ? 
5.3.2 链接表示 ? 
5.3.3 线索二叉树 ? 
5.4 二叉树的应用 ? 
5.4.1 堆与优先队列 ? 
5.4.2 哈夫曼树及其应用 ? 
5.5 树及其抽象数据类型 ? 
5.5.1 基本概念 ? 
5.5.2 抽象数据类型 ? 
5.5.3 树的周游 ? 
5.6 树的实现 ? 
5.6.1 父指针表示法 ? 
5.6.2 子表表示法 ? 
5.6.3 长子-兄弟表示法 ? 
5.6.4 树的其他表示法.. 
5.7 树林 ? 
5.7.1 树林的周游 ? 
5.7.2 树林的存储表示 ? 
5.7.3 树林与二叉树的转换 ? 
小结 ?
习题 ? 
6 集合与字典? 
6.1 集合及其抽象数据类型 ? 
6.1.1 基本概念 ? 
6.1.2 主要运算 ? 
6.1.3 抽象数据类型 ? 
6.2 集合的实现 ? 
6.2.1 集合的位向量表示 ? 
6.2.2 集合的单链表表示 ? 
6.3 字典及其抽象数据类型 ? 
6.3.1 基本概念 ? 
6.3.2 抽象数据类型 ? 
6.4 字典的顺序表示 ? 
6.4.1 存储结构 ? 
6.4.2 算法的实现 ? 
6.4.3 有序顺序表与二分法检索 ? 
6.5 字典的散列表示 ? 
6.5.1 基本概念 ? 
6.5.2 散列函数 ? 
6.5.3 碰撞的处理 ? 
6.5.4 散列文件 ? 
小结 ? 
习题 ? 
7 高级字典结构? 
7.1 字典与索引 ? 
7.1.1 字典的索引 ? 
7.1.2 索引的抽象 ? 
7.2 字符树 ? 
7.2.1 双链树表示 ? 
7.2.2 多链表示 ? 
7.3 二叉排序树 ? 
7.3.1 二叉排序树 ? 
7.3.2 二叉排序树的检索 ? 
7.3.3 二叉排序树的插入和构造 ? 
7.3.4 二叉排序树的删除 ? 
7.4 最佳二叉排序树 ? 
7.4.1 基本概念 ? 
7.4.2 等概率的检索 ? 
7.4.3 不等概的情况 ? 
7.5 平衡二叉排序树 ? 
7.5.1 基本概念 ? 
7.5.2 调整平衡的模式 ? 
7.5.3 实现 ? 
7.6 索引文件 ? 
7.6.1 多分树 ? 
7.6.2 B树 ? 
7.6.3 B+树 ? 
小结 ? 
习题 ? 
8 排序? 
8.1 基本概念 ? 
8.2 插入排序 ? 
8.2.1 直接插入排序 ? 
8.2.2 二分法插入排序 ? 
8.2.3 表插入排序 ? 
8.2.4 Shell排序 ? 
8.3 选择排序 ? 
8.3.1 直接选择排序 ? 
8.3.2 堆排序 ? 
8.4 交换排序 ? 
8.4.1 起泡排序 ? 
8.4.2 快速排序 ? 
8.5 分配排序 ? 
8.5.1 概述 ? 
8.5.2 基数排序 ? 
8.6 归并排序 ? 
8.6.1 内排序 ? 
8.6.2 外排序 ? 
小结 ? 
习题 ? 
9 图? 
9.1 基本概念及其抽象数据类型 ? 
9.1.1 基本概念 ? 
9.1.2 抽象数据类型 ? 
9.2 图的周游 ? 
9.2.1 深度优先周游 ? 
9.2.2 广度优先周游 ? 
9.3 存储表示 ? 
9.3.1 邻接矩阵表示法 ? 
9.3.2 邻接表表示法 ? 
9.3.3 两种表示的比较 ? 
9.4 最小生成树 ? 
9.4.1 最小生成树及其性质 ? 
9.4.2 最小生成树的构造 ? 
9.5 最短路径 ? 
9.5.1 Dijkstra算法 ? 
9.5.2 Floyd算法 ? 
9.6 拓扑排序 ? 
9.6.1 AOV网 ? 
9.6.2 拓扑排序 ? 
9.7 关键路径 ? 
9.7.1 AOE网 ? 
9.7.2 关键路径 ? 
小结 ? 
习题 ? 
10 算法分析与设计? 
10.1 算法分析技术 ? 
10.1.1 空间代价分析 ? 
10.1.2 时间代价分析 ? 
10.2 算法设计技术 ? 
10.2.1 分治法 ? 
10.2.2 贪心法 ? 
10.2.3 动态规划法 ? 
10.2.4 回溯法 ? 
10.2.5 分枝界限法与0/1背包问题? 
小结 ? 
习题 ? 
参考文献 ? 
索引? 
算法清单? 
后记