基本信息
- 原书名:Data Structures and Algorithms in Python


内容简介
作译者
罗伯托·塔马西亚(Roberto Tamassia) 布朗大学计算机科学系教授及系主任,兼任几何计算中心主任。他是AAAS、ACM和IEEE会士,曾荣获IEEE计算机协会技术成就奖。
迈克尔·H.戈德瓦瑟(Michael H. Goldwasser) 圣路易斯大学数学系和计算机科学系教授,兼任计算机科学项目主任,之前曾在芝加哥罗耀拉大学任教。
目录
译者序
前言
致谢
作者简介
第1章 Python入门 1
1.1 Python概述 1
1.1.1 Python解释器 1
1.1.2 Python程序预览 1
1.2 Python对象 2
1.2.1 标识符、对象和赋值语句 2
1.2.2 创建和使用对象 4
1.2.3 Python的内置类 4
1.3 表达式、运算符和优先级 8
1.4 控制流程 12
1.4.1 条件语句 12
1.4.2 循环语句 14
1.5 函数 16
1.5.1 信息传递 17
1.5.2 Python的内置函数 19
前言
为了提高软件开发的健壮性和可重用性,我们在本书中采取一致的面向对象的视角。面向对象方法的一个主要思想是数据应该被封装,然后提供访问和修改它们的方法。我们不能简单地将数据看作字节和地址的集合,数据对象是抽象数据类型(Abstract Data Type,ADT)的实例,其中包括可在这种类型的数据对象上执行的操作方法的集合。我们强调的是对于一个特定的ADT可能有几种不同的实现策略,并探讨这些选择的优点和缺点。我们几乎为书中的所有数据结构和算法都提供了完整的Python实现,并介绍了将这些实现组织为可重用的组件所需的重要的面向对象设计模式。
通过阅读本书,读者可以:
对常见数据集合的抽象有一定了解(如栈、队列、表、树、图)。
理解生成常用数据结构的高效实现的算法策略。
通过理论方法和实验方法分析算法的性能,并了解竞争策略之间的权衡。
明智地利用编程语言库中已有的数据结构和算法。
拥有大多数基础数据结构和算法的具体实现经验。
应用数据结构和算法来解决复杂的问题。
为了达到最后一个目标,我们在书中提供了数据结构的很多应用实例,包括:文本处理系统,结构化格式(如HTML)的标签匹配,简单的密码技术,文字频率分析,自动几何布局,霍夫曼编码,DNA序列比对,以及搜索引擎索引。
本书特色
本书主要基于由Goodrich和Tamassia所著的《Data Structures and Algorithms in Java》,以及由Goodrich、Tamassia和Mount所著的《Data Structures and Algorithms in C++》编写而成。然而,我们并不是简单地用Python语言实现以上书籍的内容。为了充实内容,我们重新设计了本书:
对全部代码进行了重新设计,以充分利用Python的优势,如使用生成器迭代集合的元素。
在Java和C++版本中,我们提供了很多伪代码,而本书则提供了Python实现的完整代码。
在一般情况下,ADT被定义为与Python内建数据类型和Python的collections模块具有一致的接口。
第5章深入探讨了Python中基于动态数组的内置数据结构,如list、tuple和str类。新增的附录A提供了关于str类功能的进一步讲解。
重新绘制或修改了超过450幅插图。
经过新增和修订,练习的总数达到750个。
在线资源
本书提供一系列丰富的在线资源,可访问以下网站获取:
媒体评论
本书特色
·强调面向对象思想,关注抽象数据类型及其算法实现策略,通过理论方法和实验方法分析算法性能,学会比较和权衡不同策略。
·基于Python3标准,对于书中讨论的数据结构均给出了完整的Python实现代码而非伪代码,并提供全部源代码的免费下载。
·包含约500幅精心设计的插图,易于读者理解抽象概念;以及超过750道练习题,便于读者巩固知识、发散思维或开展项目实践。