数据结构与算法分析

数据结构与算法分析
作 者: Clifford Shaffer 张铭 刘晓丹 张铭
出版社: 电子工业出版社
丛编项: 国外计算机科学教材系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 数据结构
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《数据结构与算法分析》作者简介

内容简介

本书把数据结构原理和算法分析技术有机地结合在一起,系统地介绍了各种类型的数据结构和各种排序、检索方法。作者还引入了一些比较高级的数据结构与算法分析技术,并介绍了可计算性理论的一般知识。作者采用了能更自然地体现抽象数据类型概念的C++语言作为算法描述语言,并注意对每一种数据结构的不同存储方法与有关算法进行比较分析。本书概念清楚,逻辑性强,内容新颖,可作为大专院校计算机科学与技术系相关专业学生的教材或参考书,也可供从事计算机工程的技术人员参考。

图书目录

前言

第一部分 预备知识

第1章 数据结构和算法

1. 1 数据结构的原则

1. 1. 1 学习数据结构的必要性

1. 1. 2 代价与效益

1, 1. 3 本书的日的

1. 2 抽象数据类型和数据结构

l. 3 问题. 算法和程序

1. 4 算法的效率

1. 5 深入学习导读

1. 6 习题

第2章 数学预备知识

2. 1 集合

2. 2 常用数学术语

2. 3 对数

2. 4 递归

2. 5 级数求和与递归

2. 6 数学证明方法

2. 6. 1 反证法

2. 6. 2 数学归纳法

2. 7 评估

2. 8 深入学习导读

2. 9 习题

第3章 算法分析

3. 1 概述

3. 2 最佳. 最差和平均情况

3. 3 换一台更快的计算机, 还是换一种更快的算法?

3. 4 渐近分析

3. 4. 1 上限

3. 4. 2 厂限

3. 4. 3 表示法

3. 4. 4 简化法则

3. 5 程序运行时间的计算

3. 6 问题的分析

3. 7 多参数问题

3. 8 空间代价

3. 9 实际操作中的一些因素

3. 10 深入学习导读

3. 11 习题

3. 12 项目设计

第二部分 基本数据结构

第4章 线性表. 栈和队列

4. 1 线性表

4. 1. 1 顺序表的表示法

4. 1. 2 链表

4. 1. 3 线性表实现方法的比较

4. 1. 4 元素的表示

4. 1. 5 双链表

4. 1. 6 循环链表

4. 2 栈

4. 2. 1 顺序栈

4. 2. 2 链式栈

4. 2. 3 顺序栈与链式栈的比较

4. 2. 4 递归的实现

4. 3 队列

4. 3. 1 顺序队列

4. 3. 2 链式队列

4. 2. 3 顺序队列与链式队列的比较

4. 4 习题

4. 5 项目设计

第5章 二叉树

5. 1 定义及主要特性

5. 1. 1 满二叉树定理

5. 1. 2 二叉树结点的抽象数据类型

5. 2 周游二叉树

5. 3 二叉树的实现

5. 3. 1 使用指针实现二叉树

5. 3. 2 空间开销

5. 3. 3 使用数组实现完全二叉树

5. 4 Huffman编码树

5. 4. 1 建立Huffman编码树

5. 4. 2 Huffman编码及其用法

5. 5 二叉检索树

5. 6 堆与优先队列

5. 7 深入学习导读

5. 8 习题

5. 9 项目设计

第6章 树

6. 1 树的定义与术语

6. 1. 1 树结点的抽象数据类型

6. 1. 2 树的周游

6. 2 父指针表示法

6. 3 树的实现

6. 3. 1 子结点表表示法

6. 3. 2 左子结点/右兄弟结点表示法

6. 3. 3 动态结点表示法

6. 3. 4 动态“左子结点/右兄弟结点”表示法

6. 4 K叉树

6. 5 树的顺序表示法

6. 6 深入学习导读

6. 7 习题

6. 8 项目设计

第7章 图

7. 1 术语和表示法

7. 2 图的实现

7. 3 图的周游

7. 3. 1 深度优先搜索

7. 3. 2 广度优先搜索

7. 3. 3 拓扑排序

7. 4 最短路径问题

7. 4. 1 单源最短路径

7. 4. 2 每对顶点间的最短路径

7. 5 最小支撑树

7. 5. 1 Prim算泌

7. 5. 2 Kruskal算法

7. 6 深入学习导读

7. 7 习题

7. 8 项目设计

第三部分 排序和检索

第8章 内排序

8. 1 排序的术语及记号

8. 2 三种代价为(n)的排序算法

8. 2. 1 插入排序

8. 2. 2 起泡排序

8. 2. 3 选择排序

8. 2. 4 交换排序算法的时间代价

8. 3 Shell排序

8. 4 快速排序

8. 5 归并排序

8. 6 堆排序

8. 7 分配排序和基数排序

8. 8 对各种排序算法的实验比较

8. 9 排序算法的下限

8. 10 深入学习导读

8. 11 习题

8. 12 项目设计

第9章 文件管理和外排序

9. 1 主存储器和辅助存储器

9. 2 磁盘和磁带

9. 2. 1 磁盘访问开销

9. 2. 2 磁带

9. 3 缓冲区和缓冲池

9. 4 程序员的文件视图

9. 5 外排序

9. 6 外排序的简单方法

9. 7 置换选择排序

9. 8 多路归并

9. 9 深入学习导读

9. 10 习题

9. 11 项目设计

第10章 检索

10. 1 检索已排序的数组

l0. 2 自组织线性表

l0. 3 集合的检索

10. 4 散列方法

l0. 4. 1 散列函数

10. 4. 2 开散列方法

10. 4. 3 闭散列方法

10. 5 深入学习导读

10. 6 习题

10. 7 项日设计

第ll章 索引技术

11. 1 线性索引

11. 2 ISAM

11. 3 树形索引

11. 4 2—3树

11. 5 B树

11. 5. 1 B村

11. 5. 2 B树分析

11. 6 深入学习导读

11. 7 习题

11. 8 2 项目设计

第四部分 应用与高级技术

第12章 线性表和数组的深入研究

12. 1 跳跃表

12. 2 广义表

12. 3 矩阵的表示方法

12. 4 存储管理

12. 4. 1 动态存储分配

12. 4. 2 失败策略和无用单元收集

12. 5 深入学习导读

12. 6 习题

12. 7 项目设计

第13章 高级树结构

13. 1 Trie结构

13. 2 伸展树

13. 3 空间数据结构

13. 3. 1 k—d树

13. 3. 2 PR四分树

t3. 3. 3 其他空间数据结构

13. 4 深入学习导读

13. 5 习题

13. 6 项目设计

第14章 算法分析技术

14. 1 求和技术

14. 2 递归关系

14. 2. 1 估计上下限

14. 2. 2 扩展递归

14. 2. 3 分治法递归

14. 2. 4 快速排序平均情况分析

14. 3 缓冲分析

14. 4 深入学习导读

14. 5 习题

14. 6 项目设计

第15章 计算的限制

15. 1 概述

15. 2 归约

15. 3 难解问题

15. 3. 1 NP完全性

15. 3. 2 绕过NP完全性问题

15. 4 不可解问题

15. 4. 1 不可数性

15. 4. 2 停机问题的不可解性

15. 4. 3 确定程序行为是不可解的

15. 5 深入学习导读

15. 6 习题

15. 7 项目设计

附录A C和Pascal程序员的C十十导引

A. 1 例1:线性表的ADT

A. 2 例2:顺序表的实现

A. 3 例3:链表的实现

A. 4 例4:可利用空间表

A. 5 例5:转化为模板

A. 6 例6:虚函数

附录B 参考书目