首页 > 图书中心 >图书详情

数据结构(用面向对象方法与C++描述)

本书已有更新版本

作者:殷人昆等
定价:26
印次:1-18
ISBN:9787302034056
出版日期:1999.07.01
印刷日期:2006.04.06

数据结构是计算机专业的核心课程,是从事计算机软件开发、应用人员应当必备的专业基础。随着计算机的日益普及,数据结构已成为计算机软件考试的必考课程之一。本书是根据作者在北京清华大学及美国密西根州Grand Valley州立大学多年教学的经验,并参考了近年出版的多种国外大学数据结构和面向对象软件工程教科书编写的。内容包括:数组、链接表、栈和队列、递归、树与森林、图、堆与优先级队列、集合与搜索结构、排序、索引结构与散列等。书中采用面向对象的观点讨论数据结构技术,并以兼有面向过程和面向对象双重特色的C++语言作为算法的描述工具,强化基本知识和基本能力的双基训练。全书条理清晰,通俗易懂,图文并茂,适于自学。 本书适合作大专院校中计算机或软件专业的教材,也可供计算机软件人员和计算机用户阅读。

more >

由于计算机的普及,极大地改变了人们的生活。目前各个行业、各个领域都与计算机建立了紧密的联系。这也随之带来了开发各种软件的需求。为了能够以最少的成本,最快的速度,最好的质量开发出合乎需要的软件,不能再像以前那样,把软件看作是个人雕琢的精品,必须遵循软件工程的原则,把软件的开发、维护活动标准化、工程化。就软件产品而言,最重要的就是建立合理的软件体系结构和程序结构,设计有效的数据结构。因此,为能做好软件开发工作,必须了解应如何组织各种数据在计算机中的存储、传递和转换。这样,《数据结构》这门课程显得格外重要。自1978年美籍华裔学者冀中田在国内首开这门课程以来(当时作者也在场),经过20余年的发展,这门课程已成为各大学计算机专业本科的主干课程,也成为非计算机类学生和研究生学习计算机的必修课程。 《数据结构》课程脱胎于《离散数学结构》,它涉及各种离散结构(如向量、集合、树、图、代数方程、多项式等)在计算机上如何存储和处理。其内容丰富,涉及面广泛,而且还在随各种基于计算机的应用技术的发展,不断增加新的内容。特别是面向对象技术出现以后,人们认识到,用它开发出来的软件体系结构更加符合人们的习惯,质量更容易得到保证,尤其是对使用者和用户不断提出的新的需求,更容易适应。因此,在国际上,面向对象技术得到迅速普及,出现了大批面向对象的软件开发工具。为了适合形势的要求,有必要开设结合面向对象技术的数据结构课程。 用面向对象的观点讨论数据结构,与传统的面向过程的讲法相比,变化较大。各种数据结构的讨论都是基于抽象数据类型和软件复用的。有新意,也有继承。我们力图与过去的讲授体系保持一致,但又必须引入一些新的概念。为了能够让读者容易学习,我们对内容进行了精选。许多概念,如双端堆、二项堆、最小-最大堆、斐波那契堆、左斜树、扁树、红-黑树、B*树这些从基本数据结构派生出来的都舍去了。同时,把动态存储管理部分归到《操作系统》课程,把文件组织部分归到《数据库原理》,只保留重要的应用最广泛的一些结构。对这些结构做全面深入的讲解。阐明数据结构内在的逻辑关系,讨论它们在计算机中的存储表示,并结合各种典型事例说明它们在解决应用问题时的动态行为和各种必要的操作。并以C++语言为表述手段,介绍在面向对象程序设计过程中各种数据结构的表达和实现。只要是学过C或PASCAL语言,就能够很容易地阅读和理解。并因此学习C++语言,提高读者的软件设计和编程能力。 本书是作为清华大学计算机系的《数据结构》教科书编写的。它的作者是在清华大学和美国密西根州Grand Valley州立大学从事《数据结构》第一线教学的教师。他们有着丰富的数据结构和软件工程教学的经验,教学效果良好。陶永雷教授1997年春专程回国参加教材的编写工作。陶教授根据他在美国讲授软件工程和数据结构课程的经验,就内容选择、讲授体系、习题选编提出了很多建议,并帮助我们搜集了多种在美国受欢迎的数据结构方面的参考书和实验指导书,亲自审查和修改了全书的类声明和程序。北方交通大学盛绚华副教授亲自带领该校通控系一些同学对这些程序进行了验证。全书的执笔由清华大学计算机系《数据结构》课程讲员殷人昆和谢若阳担任。 全书共分10章,第1章是预备知识,主要介绍什么是数据,数据与信息的关系;什么是数据结构,数据结构的分类。通过学习,读者能够了解抽象数据类型和面向对象的概念,并对对象、类、继承、消息以及其它关系的定义、使用有基本认识。由于我们选择了具有面向过程和面向对象双重特点的C++语言,可以帮助读者自然而轻松地从传统程序设计观念向面向对象方法转变。在这一章的最后还讨论了算法设计和简单的算法分析方法。 第2章和第3章是全书的基础,讨论了数组和链表结构,以及利用它们定义出来的各种结构,如顺序表、代数多项式、稀疏矩阵、字符串等。通过学习,读者可以了解对象和类的基本实现,并通过模板、继承、多态性等的使用,以及游标类的引入,对数据抽象概念有进一步的理解。 第4章引入三种存取受限的表,即栈、队列和优先级队列。通过对它们的定义、实现和应用的深入介绍,使读者能够了解在什么场合使用它们,为以后更复杂数据结构和算法的实现,提供了多种辅助手段。 第5章介绍在许多领域中经常遇到的递归程序设计概念,以及递归的非递归实现问题。在本章的后半部分重点介绍了广义表,这是一种应用广泛又十分灵活的结构。它的递归结构导致了它的许多操作的递归实现,从而加深对递归的认识。 第6章和第8章介绍在实际应用中最重要的非线性结构——树与图。在管理、电子设计、机械设计、日常生活中许多方面都会用到它们。 第7章和第10章介绍集合、查找、索引、散列。在实际与信息处理相关的应用中,这些结构十分重要。许多非数值处理都涉及到这些结构,它们与内存、外存上的数据组织关系密切,如在外存组织文件时全面应用了这些结构。它们又是许多新结构的生长点。因此,读者学习这些内容将获益匪浅。 第9章介绍排序。这也是应用十分广泛的技术。只要是数据处理,就少不了排序。如何才能高效地完成排序,本章分别就内、外存使用的多种排序方法进行介绍和讨论,读者可以深入了解排序的机制,并也能从中学到许多程序设计的技巧。 本书的篇幅虽然较大,但给读者一个选择,可以根据时间、能力,适当对全书需要学习的内容加以剪裁。本着少讲多练的原则,可以对每种结构只介绍类定义和关键操作的实现,其它内容可以让同学自学。通过上机练习,加深理解。在本书目录中加*的章节可以酌情不讲。 在本书的成书过程中得到计算机系领导的关心,清华大学出版社的支持。此外,清华大学计算机系1994级全体150多位同学和中文系1994级6位同学参加了资料的翻译、整理工作。

more >
扫描二维码
下载APP了解更多

同系列产品more >

数据结构(C语言版)(第3版)

殷人昆
定 价:89元

查看详情
Java语言程序设计实践教程

郑莉、尹刚、张宇
定 价:39元

查看详情
计算机操作系统教程(第5版)

张尧学、任炬、卢军
定 价:59元

查看详情
计算机操作系统教程(第5版)习题...

张尧学、任炬、卢军
定 价:38元

查看详情
图论与代数结构(第2版)

崔勇,张小平
定 价:49元

查看详情
图书分类全部图书
more >
  • 第1章绪论1

    1.1什么是数据结构2

    1.2抽象数据类型及面向对象概念4

    1.2.1数据类型4

    1.2.2数据抽象与抽象数据类型(ADTs: Abstract Data Types)4

    1.2.3面向对象的概念5

    1.2.4用于描述数据结构的语言7

    1.3数据结构的抽象层次7

    *1.4用C++描述面向对象程序9

    1.4.1C++的函数特征9

    1.4.2C++的数据声明10

    1.4.3C++的作用域11

    1.4.4C++的类11

    1.4.5C++中的对象13

    1.4.6C++的输入输出13

    1.4.7C++中的函数15

    1.4.8C++中的参数传递15

    1.4.9C++中的函数名重载和操作符重载16

    1.4.10C++中的动态存储分配17

    1.4.11友元(friend)函数18

    1.4.12内联(inline)函数18

    1.4.13结构(struct)与类18

    1.4.14联合(Union)与类19

    1.5算法定义19

    1.6模板(template)20

    1.7性能分析与度量23

    1.7.1算法的性能标准23

    *1.7.2算法的后期测试24

    1.7.3算法的事前估计26

    1.7.4空间复杂度度量26

    1.7.5时间复杂度度量27

    1.7.6时间复杂度的渐进表示法31

    1.7.7渐进的空间复杂度34

    习题34

    第2章数组37

    2.1作为抽象数据类型的数组37

    2.1.1在C++中数组的定义和初始化37

    2.1.2作为抽象数据类型的数组38

    2.1.3数组的顺序存储方式40

    2.2顺序表42

    2.2...

  • 作者

    § 殷人昆,清华大学计算机系软件工程实验室主任,中国科学院研究生院远程教育部兼职教授。清华大学信息学院系列教材编辑委员会委员,“数据结构”课程主讲教师。

    § 陶永雷,美国密西根州Grand Valley州立大学计算机系终身教授 

    点评

    § 本书是清华大学出版社2000年优秀教材,教育部高等院校计算机学科十五规划教材。

    § 本书是清华大学计算机系主干课程“数据结构”的配套教材,该课程自1995年以来被评为清华大学校级一类课,2002年被评为校级精品课。

    § 本书的修订版成为清华大学信息学院的重点建设教材,将于2005年出版,并将作为清华大学信息学院所有系所(电子系、计算机系、自动化系、微电子所)的平台教材。

    教学资源

    § 《数据结构习题解析》是本书的配套教材。该书首先针对学生在学习上普遍存在的困难,给予详细的指导。针对每一章的内容,按了解、理解、掌握、熟练掌握和综合应用等分类,做出不同的要求,并给出例题分析和主要习题的解答思路。

    § 《数据结构》配套电子教案。包括了事例讲解、概念介绍、算法演示、算法分析等,版面美观、叙述清楚。为讲授课程的教师提供了大量的素材

    § 《数据结构》网页,提供书上教材的源代码、《数据结构习题解析》中多数练习的源代码、全部电子教案等。

    教材简介

    § 本书适用于大学计算机专业本科学生,建议学时数64小时。如果只有48学时,可将目录中加注*的小节略去不讲。

    § 本书采用面向对象方法和C++语言描述数据结构和算法。与传统教材相比,其特点是:

    s 传统教材用过程性方法描述数据结构与算法,不能实现数据封装和信息隐蔽,致使在程序中直接引用,不能做到修改局部化。用面向对象方法克服了这个问题,利用类的定义很自然地实现了抽象数据类型的思想,提高了程序结构的稳定性。

    s 传统教材用C语言描述,不能实现复用,不能用继承关系表示数据结构的合理关联。用面向对象方法可以定义模板类和继承,使得目前许多最佳软件开发实践(如可复用构件、设计模式等)得以实现。真正做到一次定义,到处使用。

    s 传统教材用C语言描述,在动态存储管理、指针使用等方面不够灵活,给学习者造成困难。用面向对象方法和C++不但能够发挥C的优点,还引入了“流”的概念,增强了输入输出的处理功能;在处理函数调用时使用引用型参数,使得指针的运用变得容易,减少编程出错的机会。

    § 本书内容涵盖几乎所有常用数据结构和算法。描述方式引进软件工程原则,遵循软件开发规范。针对学生在编写程序方面的弱点,采取循序渐进的方法引导学生解决问题,培养编写良好程序的能力和习惯。

    § 习题选编经过精心安排,有利于提高学生对课程内容的理解和算法编写/算法分析的能力。

版本展示

精彩书评more >

标题

评论

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘