数据结构与STL
基本信息
内容简介回到顶部↑
目录回到顶部↑
出版者的话
专家指导委员会
译者序
前言
第1章 c++中的类 1
1.1 类 1
1.1.1 方法接口 1
1.1.2 对象 2
1.1.3 数据抽象 4
1.1.4 构造器 6
1.1.5 一个employee类 7
1.1.6 employee类的定义 11
实验1:company项目 13
1.1.7 继承 13
1.1.8 受保护的访问 14
1.1.9 hourlyemployee类 15
实验2:关于继承的更多的细节 18
1.1.10 运算符的重载 19
1.1.11 友元 20
实验3:重载运算符“=”和运算符“]]” 21
专家指导委员会
译者序
前言
第1章 c++中的类 1
1.1 类 1
1.1.1 方法接口 1
1.1.2 对象 2
1.1.3 数据抽象 4
1.1.4 构造器 6
1.1.5 一个employee类 7
1.1.6 employee类的定义 11
实验1:company项目 13
1.1.7 继承 13
1.1.8 受保护的访问 14
1.1.9 hourlyemployee类 15
实验2:关于继承的更多的细节 18
1.1.10 运算符的重载 19
1.1.11 友元 20
实验3:重载运算符“=”和运算符“]]” 21
译者序回到顶部↑
译 者 序
数据结构一直是计算机科学专业课程的核心内容。它是信息的组织方式。对于相同的算法,用不同的数据结构表示其中的抽象数据类型会造成不同的执行效率。因此,对数据结构的研究一直是计算机科技工作者努力的方向。本书从面向对象程序设计语言的角度讲述数据结构及其算法,使用了惠普公司提供的标准模板库(STL)作为基础,代码具有简洁性和高效率的特点,有很重要的实践意义。
在教材内容的安排上,本书仍按照各种不同的数据结构分类进行系统的介绍。在给出了面向对象程序设计及容器类的一般概念之后,通过堆栈、队列、树等常用数据结构剖析了方法接口及其简单的应用。随着C++的广泛应用,容器和模板也越来越受到编程者的重视。以往的教材虽然也详尽地介绍了各种数据结构,但总局限于理论上的探讨;与此不同的是,本书更强调标准模板库的使用,而不仅仅是一般的结构和算法。在介绍每种结构时,都尽可能地融入了它在STL中的表现形式和接口,这样就较好地解决了数据结构和实际编程应用脱节的问题。
本书与传统数据结构教材相比,除了保留系统、全面的风格之外,还增加了以下的新特点:
?重视数据结构与实际编程的结合。书中的源代码都使用C++语言编写,并进行了验证,更方便有编程需要的读者理解和使用。
?侧重STL。书中提供了大量的方法接口及实例分析。
?使用了大量的文本和图表进行辅助说明。
?每章都包含了章节目标及丰富的习题,对了解学习要求和进一步深入学习提供了很好的帮助。
对于学习和了解数据结构的本、专科学生及研究生而言,本书可作为他们的教材和教学参考书;而对于编程人员、技术服务人员以及程序使用者而言,本书也是一本很好的参考读物。
本书由周翔翻译,在翻译过程中得到了隋立恒、王勇等的帮助。由于本书的内容新,涉及面广,加之译者水平有限,书中难免会存在一些问题,恳请读者提出批评意见。
译 者
2003年9月
数据结构一直是计算机科学专业课程的核心内容。它是信息的组织方式。对于相同的算法,用不同的数据结构表示其中的抽象数据类型会造成不同的执行效率。因此,对数据结构的研究一直是计算机科技工作者努力的方向。本书从面向对象程序设计语言的角度讲述数据结构及其算法,使用了惠普公司提供的标准模板库(STL)作为基础,代码具有简洁性和高效率的特点,有很重要的实践意义。
在教材内容的安排上,本书仍按照各种不同的数据结构分类进行系统的介绍。在给出了面向对象程序设计及容器类的一般概念之后,通过堆栈、队列、树等常用数据结构剖析了方法接口及其简单的应用。随着C++的广泛应用,容器和模板也越来越受到编程者的重视。以往的教材虽然也详尽地介绍了各种数据结构,但总局限于理论上的探讨;与此不同的是,本书更强调标准模板库的使用,而不仅仅是一般的结构和算法。在介绍每种结构时,都尽可能地融入了它在STL中的表现形式和接口,这样就较好地解决了数据结构和实际编程应用脱节的问题。
本书与传统数据结构教材相比,除了保留系统、全面的风格之外,还增加了以下的新特点:
?重视数据结构与实际编程的结合。书中的源代码都使用C++语言编写,并进行了验证,更方便有编程需要的读者理解和使用。
?侧重STL。书中提供了大量的方法接口及实例分析。
?使用了大量的文本和图表进行辅助说明。
?每章都包含了章节目标及丰富的习题,对了解学习要求和进一步深入学习提供了很好的帮助。
对于学习和了解数据结构的本、专科学生及研究生而言,本书可作为他们的教材和教学参考书;而对于编程人员、技术服务人员以及程序使用者而言,本书也是一本很好的参考读物。
本书由周翔翻译,在翻译过程中得到了隋立恒、王勇等的帮助。由于本书的内容新,涉及面广,加之译者水平有限,书中难免会存在一些问题,恳请读者提出批评意见。
译 者
2003年9月
前言回到顶部↑
前 言
本书讲述了数据结构及算法。实现语言选用了C++,这适用于已经学习过相关基础课程的学生。这些课程并不一定是面向对象的,但应当覆盖基本语句和数据类型,比如数组和文件处理的基础。
标准模板库
本书的显著特点是其依据为标准模板库(STL)—这个库由惠普公司提供。使用这种方法有几个优点。首先,这些代码是被详尽检测过的;其次,读者通过本书有机会学习到以前没有接触过的专业代码,它是相当高效率和简洁的;第三,这个库在今后的课程中也是非常有用的。
大多数情况下库不会描述数据结构的实现。这是有好处的,我们可以将注意力放在功能而不是实现细节上。关于这些类的定义,可以参阅惠普研究实验室的Stepanov等人的原始实现(参见Stepanov and Lee,1994)。这个惠普实现是作者所知的全部实现的基础。
考虑过的其他实现
与标准模板库的惠普实现同样重要的是,本书不是只关注于数据结构和算法的基础课程。和惠普实现不同的方法也是值得考虑的。例如,list类的实现使用了有头节点的双向链表,它和单链表以及有头尾域的双向链表是不同的。另外本书还比较了不同实现的差异。当然,还有一些数据结构(像图)和算法(像回溯)是不在标准模板库里的。
本书也可以满足数据结构和算法课程的基本需要:让学生练习开发他们自己的数据结构。书中有许多编程项目,它们的数据结构要么是从头创建的,要么是从章中的范例扩展而来的。另外还有一些项目,是开发或扩展那些使用标准模板库的应用程序。
标准C++
所有的代码都是基于ANSI/ISO标准C++的,并且在Windows平台(C++ Builder和Visual C++)和Unix平台(G++)上测试过。标准模板库遵循的规范(不是指具体实现)是ANSI/ISO C++的一部分。
教学方法的特点
本书有几个特点,这些可以改善教学者的教学环境以及学生的学习环境。每章开头都给出了目标,末尾至少给出一个主要编程任务。每个数据结构都描述得很详细,每个方法都有一个前置条件和后置条件。另外,大部分方法都给出了调用示例以及调用结果。
对细节问题,特别是标准模板库的惠普实现,进行了认真的研究,并在29个实验中得到补充。参阅前言的“实验的组织”部分可以了解更多关于这些实验的信息。每章后都有多种习题,教师可以使用这些习题的答案。
辅助材料
所有的辅助材料都放在网站上:www.mhhe.com/collins。
网站为学生提供了下列信息的链接:
?实验的观察以及入门方法。
?本文开发的所有项目的源代码。
?项目的Applet,它有一个很强的可视化组件。
另外,教师可以从网站获取下列信息:
本书讲述了数据结构及算法。实现语言选用了C++,这适用于已经学习过相关基础课程的学生。这些课程并不一定是面向对象的,但应当覆盖基本语句和数据类型,比如数组和文件处理的基础。
标准模板库
本书的显著特点是其依据为标准模板库(STL)—这个库由惠普公司提供。使用这种方法有几个优点。首先,这些代码是被详尽检测过的;其次,读者通过本书有机会学习到以前没有接触过的专业代码,它是相当高效率和简洁的;第三,这个库在今后的课程中也是非常有用的。
大多数情况下库不会描述数据结构的实现。这是有好处的,我们可以将注意力放在功能而不是实现细节上。关于这些类的定义,可以参阅惠普研究实验室的Stepanov等人的原始实现(参见Stepanov and Lee,1994)。这个惠普实现是作者所知的全部实现的基础。
考虑过的其他实现
与标准模板库的惠普实现同样重要的是,本书不是只关注于数据结构和算法的基础课程。和惠普实现不同的方法也是值得考虑的。例如,list类的实现使用了有头节点的双向链表,它和单链表以及有头尾域的双向链表是不同的。另外本书还比较了不同实现的差异。当然,还有一些数据结构(像图)和算法(像回溯)是不在标准模板库里的。
本书也可以满足数据结构和算法课程的基本需要:让学生练习开发他们自己的数据结构。书中有许多编程项目,它们的数据结构要么是从头创建的,要么是从章中的范例扩展而来的。另外还有一些项目,是开发或扩展那些使用标准模板库的应用程序。
标准C++
所有的代码都是基于ANSI/ISO标准C++的,并且在Windows平台(C++ Builder和Visual C++)和Unix平台(G++)上测试过。标准模板库遵循的规范(不是指具体实现)是ANSI/ISO C++的一部分。
教学方法的特点
本书有几个特点,这些可以改善教学者的教学环境以及学生的学习环境。每章开头都给出了目标,末尾至少给出一个主要编程任务。每个数据结构都描述得很详细,每个方法都有一个前置条件和后置条件。另外,大部分方法都给出了调用示例以及调用结果。
对细节问题,特别是标准模板库的惠普实现,进行了认真的研究,并在29个实验中得到补充。参阅前言的“实验的组织”部分可以了解更多关于这些实验的信息。每章后都有多种习题,教师可以使用这些习题的答案。
辅助材料
所有的辅助材料都放在网站上:www.mhhe.com/collins。
网站为学生提供了下列信息的链接:
?实验的观察以及入门方法。
?本文开发的所有项目的源代码。
?项目的Applet,它有一个很强的可视化组件。
另外,教师可以从网站获取下列信息:








点击看大图




加载中...

