Practical introduction to data structures and algorithm analysis
副标题:无
作 者:(美)Clifford A. Shaffer著;张铭,刘晓丹等译
分类号:
ISBN:9787121089589
微信扫一扫,移动浏览光盘
简介
本书采用程序员最爱用的面向对象C++语言来描述数据结构和算法,并把数据结构原理和算法分析技术有机地结合在一起,系统介绍了各种类型的数据结构和排序、检索的各种方法。作者非常注意对每一种数据结构不同存储方法及有关算法进行分析比较。书中还引入了一些比较高级的数据结构与先进的算法分析技术,并介绍了可计算性理论的一般知识。本版的重要改进在于引入了参数化的模板,从而提高了算法中数据类型的通用性,支持高效的代码重用。
本书概念清楚、逻辑性强、内容新颖,可作为大专院校计算机软件专业与计算机应用专业学生的教材和参考书,也可供计算机工程技术人员参考。
目录
第一部分 预备知识
第1章 数据结构和算法
1.1 数据结构的原则
1.1.1 学习数据结构的必要性
1.1.2 代价与效益
1.2 抽象数据类型和数据结构
1.3 问题、算法和程序
1.4 深入学习导读
1.5 习题
第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 习题
3.13 项目设计
第二部分 基本数据结构
第4章 线性表、栈和队列
4.1 线性表
4.1.1 顺序表的实现
4.1.2 链表
4.1.3 线性表实现方法的比较
4.1.4 元素的表示
4.1.5 双链表
4.2 字典ADT
4.3 栈
4.3.1 顺序栈
4.3.2 链式栈
4.3.3 顺序栈与链式栈的比较
4.3.4 递归的实现
4.4 队列
4.4.1 顺序队列
4.4.2 链式队列
4.4.3 顺序队列与链式队列的比较
4.5 深入学习导读
4.6 习题
4.7 项目设计
第5章 二叉树
5.1 定义及主要特性
5.1.1 满二叉树定理
5.1.2 二叉树的抽象数据类型
5.2 周游二叉树
5.3 二叉树的实现
5.3.1 使用指针实现二叉树
5.3.2 空间代价
5.3.3 使用数组实现完全二叉树
5.4 二叉查找树
5.5 堆与优先队列
5.6 Huffmnan编码树
5.6.1 建立Huffman编码树
5.6.2 Huffman编码及其用法
5.7 深入学习导读
5.8 习题
5.9 项目设计
第6章 树
6.1 树的定义与术语
6.1.1 树结点的ADT
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 三种代价为■(n2)的排序方法
7.2.1 插入排序
7.2.2 起泡排序
7.2.3 选择排序
7.2.4 交换排序算法的时间代价
7.3 Shell排序
7.4 快速排序
7.5 归并排序
7.6 堆排序
7.7 分配排序和基数排序
7.8 对各种排序算法的实验比较
7.9 排序问题的下限
7.10 深入学习导读
7.11 习题
7.12 项目设计
第8章 文件管理和外排序
8.1 主存储器和辅助存储器
8.2 磁盘
8.2.1 磁盘结构
8.2.2 磁盘访问代价
8.3 缓冲区和缓冲池
8.4 程序员的文件视图
8.5 外部排序
8.6 外部排序的简单方法
8.7 置换选择排序
8.8 多路归并
8.9 深入学习导读
8.10 习题
8.11 项目……
第1章 数据结构和算法
1.1 数据结构的原则
1.1.1 学习数据结构的必要性
1.1.2 代价与效益
1.2 抽象数据类型和数据结构
1.3 问题、算法和程序
1.4 深入学习导读
1.5 习题
第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 习题
3.13 项目设计
第二部分 基本数据结构
第4章 线性表、栈和队列
4.1 线性表
4.1.1 顺序表的实现
4.1.2 链表
4.1.3 线性表实现方法的比较
4.1.4 元素的表示
4.1.5 双链表
4.2 字典ADT
4.3 栈
4.3.1 顺序栈
4.3.2 链式栈
4.3.3 顺序栈与链式栈的比较
4.3.4 递归的实现
4.4 队列
4.4.1 顺序队列
4.4.2 链式队列
4.4.3 顺序队列与链式队列的比较
4.5 深入学习导读
4.6 习题
4.7 项目设计
第5章 二叉树
5.1 定义及主要特性
5.1.1 满二叉树定理
5.1.2 二叉树的抽象数据类型
5.2 周游二叉树
5.3 二叉树的实现
5.3.1 使用指针实现二叉树
5.3.2 空间代价
5.3.3 使用数组实现完全二叉树
5.4 二叉查找树
5.5 堆与优先队列
5.6 Huffmnan编码树
5.6.1 建立Huffman编码树
5.6.2 Huffman编码及其用法
5.7 深入学习导读
5.8 习题
5.9 项目设计
第6章 树
6.1 树的定义与术语
6.1.1 树结点的ADT
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 三种代价为■(n2)的排序方法
7.2.1 插入排序
7.2.2 起泡排序
7.2.3 选择排序
7.2.4 交换排序算法的时间代价
7.3 Shell排序
7.4 快速排序
7.5 归并排序
7.6 堆排序
7.7 分配排序和基数排序
7.8 对各种排序算法的实验比较
7.9 排序问题的下限
7.10 深入学习导读
7.11 习题
7.12 项目设计
第8章 文件管理和外排序
8.1 主存储器和辅助存储器
8.2 磁盘
8.2.1 磁盘结构
8.2.2 磁盘访问代价
8.3 缓冲区和缓冲池
8.4 程序员的文件视图
8.5 外部排序
8.6 外部排序的简单方法
8.7 置换选择排序
8.8 多路归并
8.9 深入学习导读
8.10 习题
8.11 项目……
Practical introduction to data structures and algorithm analysis
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×