注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关C++类和数据结构

C++类和数据结构

C++类和数据结构

定 价:¥49.99

作 者: (美)查尔兹(Childs,J.S) 著;张杰良 译
出版社: 清华大学出版社
丛编项: 国外计算机科学经典教材
标 签: VC++

购买这本书可以去


ISBN: 9787302191797 出版时间: 2009-01-01 包装: 平装
开本: 16开 页数: 401 字数:  

内容简介

  这是一本适合于学生的C++数据结构指南,它基于现代软件发展的现实和职业程序员的需求。本书首先从类的全面介绍入手,提供学生成功使用数据结构所需的基础知识。接下来介绍了创建数据结构的方法,包括链表和可扩展/收缩的动态数组。解释了时间复杂度对执行速度的影响方式,帮助程序员理解关键性能之间的权衡考虑。然后以这些为基础,从散列表到二叉搜索树,详细介绍了每一种常见的数据结构。本书还详细设计了各种概念性的解释,以帮助程序员使用任何现代程序语言。本书可作为计算机类专业或信息类相关专业的本科或专科教材,也可供从事计算机工程与应用工作的科技工作者参考。本书特色:为每个关键的数据结构概念提供了清晰易懂的解释书中示例的设计综合考虑速度、内存使用、可靠性和程序员方便性等诸方面的问题每章后面还提供相关的练习,解决程序员实际编程过程中所面临的富有针对性的问题所有的例子都使用Visual C++2005编译和测试,并且可以在Microsoft免费的Visual Studio 2005Express Edition上运行。

作者简介

  Jeffrey S. Childs,先生拥有美国扬斯敦州立大学计算机科学专业的学士学位以及肯特州立大学的计算机科学硕士和博士学位。他致力于图像高斯分解的研究,撰写并发表了多篇该领域的论文。他开发了Quickstep算法,该算法在时间复杂度上大大优于现有的高斯分解算法。在过去的9年中,他一直在讲授数据结构课程。此外,他还从事数据结构的研究,在基于客户教学法设计、内存管理以及特定数据结构设计等领域都有所突破。目前,Jeffrey S.Childs博士是美国宾州克莱瑞恩大学的终身教授。

图书目录

第1章 结构和类
1.1 结构
1.2 类的基本概念
1.3 类的实现
1.4 类的测试
1.5 将函数定义放在类定义中
1.6 类的注释
1.7 结构和类之间的区别
1.8 小结
1.9 练习
第2章 重载运算符、类模板和抽象
2.1 重载运算符
2.2 在Checkbook类中使用Check结构
2.3 类模板
2.4 类和抽象
2.5 小结
2.6 练习
第3章 类的更多内容
3.1 const限定符
3.2 构造函数
3.3 类的修改
3.4 修改Checkbook类保存支票历史记录
3.5 小结
3.6 练习
第4章 指针和动态数组
4.1 指针
4.2 〔〕运算符
4.3 动态分配内存
4.4 动态数组
4.5 delete操作符
4.6 对象指针
4.7 堆内存耗尽
4.8 可调数组
4.9 小结
4.10 练习
第5章 Array类
5.1 Array类模板
5.2 使用ArraY类
5.3 析构函数
5.4 复制构造函数
5.5 重载赋值运算符函数
5.6 示例
5.7 Array类的优缺点
5.8 标准模板库
5.9 小结
5.10 练习
第6章 面向对象编程简介
6.1 组合
6.2 继承
6.3 多态
6.4 小结
6.5 练习
第7章 生成数据结构的方法
7.1 在数据结构中使用数组
7.2 链式结构简介
7.3 链表编码
7.3.1 链表代码基础
7.3.2 在链表中搜索一个肯定存在的值
7.3.3 在链表中搜索可能不存在的值
7.3.4 在链表的表头插入一个结点
7.3.5 在链表中间插入一个结点
7.3.6 从链表中删除一个包含链表中某个值的结点
7.3.7 使用header结点简化代码
7.3.8 删除找到包含某值的结点
7.4 数组和链表的对比
7.4.1 数组和链表在速度上的比较
7.4.2 数组和链表在内存浪费上的比较
7.4.3 浪费内存分析
7.5 小结
7.6 练习
第8章 栈和队列
8.1 栈ADT
8.2 栈的数组实现
8.3 栈的链表实现
8.4 队列ADT
8.5 队列的链表实现
8.6 队列的其他链表实现
8.7 队列的数组实现
8.8 小结
8.9 练习
第9章 时间复杂度简介
9.1 时间复杂度基础
9.2 常量阶时间复杂度
9.3 大O表示法
9.4 对数阶时间复杂度
9.5 折半搜索算法
9.6 计算机速度:它来源于什么地方
9.7 数据结构函数的时间复杂度
9.8 数组扩展和收缩的平摊分析
9.9 小结
9.10 练习
第10章 链表作为数据结构
10.1 列表ADT
10.2 在信息记录中使用关键码值
10.3 链表实现
10.3.1 链表说明文件
10.3.2 链表实现文件
10.4 其他实现
10.5 小结
10.6 练习
第11章 散列表
11.1 散列表ADT
11.2 散列函数和散列表设计
11.3 散列表的实现问题
11.4 函数指针
11.5 散列表实现
11.6 使用散列表实现
11.7 双向链表的散列表实现
11.7.1 实现问题
11.7.2 DoublyLinkedList类的说明文件
11.7.3 DoublyLinkedList类的实现文件
11.8 小结
11.9 练习
第12章 优先级队列、树和堆
12.1 优先级队列ADT
12.2 优先级队列设计
12.3 树
12.4 堆
12.5 使用单赋值交换
12.6 优先级队列的堆实现(基于数组)
12.7 链(内嵌)堆设计
12.8 优先级队列的链(内嵌)堆实现
12.9 小结
12.10 练习
第13章 递归
13.1 递归阶乘函数
13.2 递归函数编写原则
13.3 在链式结构上使用递归
13.4 递归函数的时间复杂度
13.5 小结
13.6 练习
第14章 排序算法简介
14.1 堆排序
14.2 插入排序
14.3 快速排序
14.4 统计排序
14.5 链表排序
14.6 小结
14.7 练习
第15章 其他数据结构
15.1 二叉搜索树
15.2 BST和其他数据结构的对比
15.3 图
15.4 邻接矩阵和邻接表之间的对比
15.5 小结
15.6 练习
附录A 如何编译及使用多文件程序
A.1 Microsoft Visual Studio 2005 C++编译器
A.2 编译和运行使用类的代码(不是类模板)
A.3 编译和运行使用类模板的代码
A.4 使用Microsoft Visual Studio 2005编写代码
A.5 在Microsoft Visual Studio 2005中打开一个已创建的项目
A.6 何种情况下事情会变乱
A.7 UNIX编译器

本目录推荐