数据结构与面向对象程序设计
2012-5
清华大学出版社
(美)梅因 等著,金名 等译
727
1137000
金名
无
《数据结构与面向对象程序设计(c++版)(第4版)》是为计算机科学专业的第二门课程cs2编写的,首先介绍了软件开发的各个阶段、c++面向对象程序设计思想,然后从软件开发的角度,利用面向对象设计的思想,系统阐述了指针和动态数组、链表、模板类、迭代器、栈、队列、递归实现、树和图等内容,并对排序与查找的相关算法进行了深入剖析。为了让读者巩固所学知识,在每节后面都给出了大量练习题,并在每章后面给出厂答案。为了锻炼读者的动手能力,每章末给出了大量编程项目,在本书的配套网站www.cs.colorado.edu/~maln还给出了一些更具挑战性的编程项目。
《数据结构与面向对象程序设计(c++版)(第4版)》不仅非常适合于作为计算机及相关专业“数据结构”和“c++面向对象程序设计”的教材,也是计算机软件开发人员的常备参考书。
作者:(美国)梅因(Michael Main) (美国)萨维特奇(Walter Savitch) 译者:金名 等
第1章 软件开发的阶段
1.1规范说明、设计与实现
1.2运行时间分析
1.3测试与调试
1.4本章小结
第2章 抽象数据类型与c++类
2.1类与成员
2.2构造函数
2.3使用名称空间、头文件与实现文件
2.4类与参数
2.5操作符重载
2.6标准模板库与pair类
2.7本章小结
第3章 容器类
3.1bag类
3.2编程项目:sequence类
3.3交互式测试程序
3.4stl中的multiset类及其迭代器
3.5本章小结
第4章 指针与动态数组
4.1指针与动态内存
4.2把指针与数组作为参数
4.3具有动态数组的bag类
4.4有关动态类的说明
4.5stl的string类与编程项目
4.6编程项目:polynomial类
4.7本章小结
第5章 链表
5.1链表的基本节点类
5.2链表工具包
5.3用链表实现bag类
5.4编程项目:用链表实现sequence类
5.5动态数组、链表与双向链表
5.6标准模板库的vector、list和deque类
5.7本章小结
第6章 用模板、迭代器和stl进行软件开发
6.1模板函数
6.2模板类
6.3stl算法与迭代器的使用
6.4节点模板类
6.5链表的迭代器
6.6含迭代器的链表版bag模板类
6.7本章小结与5个bag类的小结
第7章 栈
7.1stl的stack类
7.2栈的应用
7.3stack类的实现
7.4更复杂的栈应用
7.5本章小结
第8章 队列
8.1stl队列
8.2队列的应用
8.3队列类的实现
8.4实现stl的双端队列
8.5栈、队列和优先队列类的引用返回值
8.6本章小结
第9章 递归思想
9.1.递归函数
9.2递归的研究:分形和迷宫
9.3推导递归
9.4本章小结
第10章 树
10.1树的简介
10.2树的表示法
10.3二叉树节点类
10.4树的遍历
10.5二叉查找树
10.6本章小结
第11章 平衡树
11.1堆
11.2stl优先队列与堆算法
11.3b树
11.4树、日志和时间分析
11.5stl的map类和multimap类
11.6本章小结
第12章 查找
12.1顺序查找和二叉查找
12.2开地址散列
12.3链式散列
12.4散列的时间分析
12.5程序设计:使用stl向量的表类
12.6tri库扩展中的散列表
12.7本章小结
第13章 排序
13.1二次排序算法
13.2递归排序算法
13.3使用堆的o(n log n)算法
13.4sn的排序与二叉查找
13.5本章小结
第14章 派生类与继承
14.1派生类
14.2仿真生态系统
14.3虚拟成员函数和game类
14.4本章小结
第15章 图
15.1图的定义
15.2图的实现
15.3图的遍历
15.4路径算法
15.5本章小结
附录
附录a ascii字符集
附录b大o表达式
附录c操作符的优先顺序
附录d命令行编译和链接
附录e使用老式编译器
附录fc什的输入和输出
附录g选择库函数
附录h标准模板类简介
附录i一些有用函数的工具包
附录j基本风格指南
附录k下载gnu编译器和软件
附录l异常处理
版权页: 插图: 不用死记硬背这些阶段,通过本书的学习以及针对每个阶段的练习,就可以熟练地掌握它们,而不是仅仅记住它们。仅仅记住这样一个“形式化的列表”是错误的,因为这样会让人觉得软件开发过程似乎只是一个接一个的离散步骤的单纯序列。在实际的软件开发中,各个阶段之间的界限往往是模糊不清的。例如,在编写代码之前,有关解决方案的效率分析可能与设计过程同时进行了,底层设计的决议也有可能被推迟到了实现阶段。而且,这些阶段可能并不是一个接一个地出现,通常,在这些阶段之间还会有一个反复的过程。 软件开发过程中的大部分工作并不依赖于任何特定的编程语言。规范说明、解决方案的设计与分析可能与特定的编程语言没有或仅仅具有很少的关系。尽管如此,但在实现的具体细节时,我们的确需要决定采用何种编程语言。在本书中,所采用的语言是C++。 在开始本书的学习之前,应当了解的C++知识C++语言作为C语言的扩展,是由AT&T Bell实验室的Bjarne Stroustrup设计的,其目的是为了支持面向对象程序设计(Object-Oriented Programming,OOP)。OOP是一种致力于信息隐藏和组件重用的技术。在本书中,将介绍一些重要的OOP原理,这些原理可以运用于你的设计和实现之中。 可以使用多种不同的C++编译器来编译本书中的代码,但最理想的是,使用支持最新的ANSI/ISO C++标准特性的编译器,本书中介绍了这一标准。但是,对于那些不能完全支持该标准的老式编译器,有多种补救措施。 无论你使用何种编程环境,都应该熟悉对简短C++程序的编写、编译和运行,都应当了解如何使用内置数据类型(如数值型、字符型和布尔型),还应能使用数组。 在本书中,将介绍C++标准库,但你不需要具有任何关于该库的预备知识。对标准库的数据结构的学习,将有助于你理解各种不同方式之间的利弊,从而指导我们完成自己的数据结构的设计和实现。在设计自己的数据结构时,遵循标准库的方式有两个好处:其一是,其他程序员能够很容易理解;其二是,可以从标准库中获得支持,例如,标准搜索与排序算法。 本书后面的内容将遵循标准库的方式,来处理有关C++描述的数据结构的设计与实现。 1.1 节重点讨论描述程序行为的技术,以及一些有关设计和实现的技巧。1.2节阐述了一种特定类型的分析方法:程序的运行时间分析。1.3节给出了一些有关测试与调试程序的技术。
《数据结构与面向对象程序设计(C++版)(第4版)》是为计算机科学专业的第二门课程CS2编写的,《数据结构与面向对象程序设计(C++版)(第4版)》系统全面介绍了数据结构与面向对象程序设计相关知识,《数据结构与面向对象程序设计(C++版)(第4版)》不仅非常适合于作为计算机及相关专业“数据结构”和“C++面向对象程序设计”的教材,也是计算机软件开发人员的常备参考书。
无
感觉还可以,课后编程项目很多适合做教材。
新出的书,有个可能互动的外文网站是亮点吧~还得看自己的修炼!!
书皮有点折了,不过不影响
书很好,但是对我来说有点深。。。
印刷还可以,但是纸张质量相当一般啊,太薄了。不过内容没的说。
正看着,心得还谈不上
书评有点皱,内容还可以.
不错,内容很充实,学到很多东西
比严慧敏的那本书容易懂一点!
很不错,例子很详细。