数据结构与C++高级教程
2004-6
清华大学出版社
卡里诺
664
田玉敏
无
本书详细介绍了数据间的逻辑关系、存储方式和相关运算。针对各种实际问题,作者以C++程序设计语言为工具,说明了在问题求解过程中类和抽象数据类型的作用,并在许多实例和习题中使用了递归方法。同时,作者还提供了一个学习C++程序设计语言的教程,本教程可供初学者使用,对于已有一定基础的读者,也大有裨益。 本书可作为计算机及相关专业的本科生、研究生的教材和教学参考书,也可供程序开发人员自学。
Frank M.Carrano于1969年获得Syracuse大学的博士学位。多年来,Carrano教授一直致力于数据结构、数据抽象、计算机科学教育、社会信息处理以及数值计算领域的研究,他还非常重视计算机科学专业本科教材的设计和发行工作,目前已经编写并出版了数本知名的教材。 Janet J.Prichard分别于1986年和1995年获得Rhode Island大学的理学硕士学位和哲学博士学位,目前 在Bryant大学任助理教授。她的研究领域包括实时数据库、数据库查询语言、面向对象分析与设计和网络安全等。 田玉敏,西安电子科技大学计算机学院教授,计算机外部设备研究所副所长。1987年毕业于西安电子科技大学计算机应用专业,获硕士学位。曾参与多项国家和国防科研项目,取得多项具有国际和国内先进水平的成果。出版专著、译著6本,发表论文20多篇。
第I部分 问题求解方法第1章 程序设计与软件工程基本原理1.1 问题求解与软件工程1.2 完成一个模块设计1.3 程序设计关键问题小结第2章 递归:镜子2.1 递归解决方案2.2 事件计数2.3 检索数组2.4 组织数据2.5 递归和效率第3章 数据抽象:墙3.1 抽象数据类型3.2 规定ADT3.3 实现ADT第4章 链表4.1 预备知识4.2 链表程序设计4.3 链表的变体4.4 应用:维护库存清单4.5 C++标准模板库第5章 求解问题的递归方法5.1 回溯5.2 定义语言5.3 递归与数学归纳的关系第II部分 用抽象数据类型求解问题第6章 栈6.1 抽象数据类型——栈6.2 栈ADT的简单应用6.3 栈ADT的实现6.4 应用:代数表达式6.5 应用:检索问题6.6 栈和递归之间的关系第7章 队列7.1 队列7.2 队列的简单应用7.3 队列的实现7.4 面向位置的ADT小结7.5 应用:仿真第8章 C++高级专题8.1 继承的再讨论8.2 虚函数与迟绑定8.3 友元8.4 表和有序表的再讨论8.5 类模板8.6 重载运算符8.7 迭代器第9章 算法效率与排序9.1 算法效率的度量9.2 排序算法及其效率第10章 树第11章 查找表与优先级队列第12章 查找表的高级实现第13章 图第14章 外部方法附录A C++重要概念回顾附录B ASCII码表附录C C++头文件和标准函数附录D 数学归纳附录E 标准模板库类附录F C++语句总结附录G C++关键字附录H C++运算符词汇表自测习题答案
本书是作者多年来讲授数据抽象和问题求解方法的经验总结。概括起来,本书有以下几个特点: ·形象地将常用的两种基本问题求解方法--数据抽象和递归比喻成墙和镜子。 ·强调数据抽象的作用。问题求解方法始终贯穿于抽象数据类型的设计、实现及其描述,同时举例说明了在问题求解过程中类和抽象数据类型(ADT)的作用,论述了ADT的主要用途。 ·分别用英语、伪代码和UML表示法给出了所有重要的ADT的规范说明。 ·深入地介绍了递归的概念,讨论了简单的递归定义和语言识别、检索、排序等递归算法的例子。 ·重点集中在数据结构而不是语言的语法上,所有的C++代码都用ANSI C++进行了验证。 ·包括了标准模板库的内容。 ·介绍了标准建模语言。 本书的读者对象很广泛,可以作为计算机及其相关专业的本科生、研究生的教材和教学参考书,也可供程序开发人员自学使用。
无