数据结构与算法:Python语言实现

数据结构与算法:Python语言实现
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , [美] , , , ,
2018-09
版次: 1
ISBN: 9787111606604
定价: 109.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 492页
330人买过
  • 本书采用Python语言介绍数据结构和算法,包括其设计、分析和实施。本书源代码简洁、明确,面向对象的观点贯穿始终,通过继承大限度地提高代码重用,同时彰显不同抽象数据类型和算法之间的异同。 迈克尔·T. 古德里奇(Michael T. Goodrich) 加州大学欧文分校计算机科学系教授,之前是约翰·霍普金斯大学教授。他是AAAS、ACM和IEEE会士,曾荣获IEEE计算机协会技术成就奖和ACM卓越服务奖等。 

    罗伯托·塔马西亚(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 

    1.6 简单的输入和输出 20 

    1.6.1 控制台输入和输出 21 

    1.6.2 文件 21 

    1.7 异常处理 22 

    1.7.1 抛出异常 23 

    1.7.2 捕捉异常 24 

    1.8 迭代器和生成器 26 

    1.9 Python的其他便利特点 28 

    1.9.1 条件表达式 29 

    1.9.2 解析语法 29 

    1.9.3 序列类型的打包和解包 30 

    1.10 作用域和命名空间 31 

    1.11 模块和import语句 32 

    1.12 练习 34 

    扩展阅读 36 

    第2章 面向对象编程 37 

    2.1 目标、原则和模式 37 

    2.1.1 面向对象的设计目标 37 

    2.1.2 面向对象的设计原则 38 

    2.1.3 设计模式 39 

    2.2 软件开发 40 

    2.2.1 设计 40 

    2.2.2 伪代码 41 

    2.2.3 编码风格和文档 42 

    2.2.4 测试和调试 43 

    2.3 类定义 44 

    2.3.1 例子:CreditCard类 45 

    2.3.2 运算符重载和Python的特殊方法 48 

    2.3.3 例子:多维向量类 50 

    2.3.4 迭代器 51 

    2.3.5 例子:Range类 52 

    2.4 继承 53 

    2.4.1 扩展CreditCard类 54 

    2.4.2 数列的层次图 57 

    2.4.3 抽象基类 60 

    2.5 命名空间和面向对象 62 

    2.5.1 实例和类命名空间 62 

    2.5.2 名称解析和动态调度 65 

    2.6 深拷贝和浅拷贝 65 

    2.7 练习 67 

    扩展阅读 70 

    第3章 算法分析 71 

    3.1 实验研究 71 

    3.2 本书使用的7种函数 74 

    3.2.1 常数函数 74 

    3.2.2 对数函数 74 

    3.2.3 线性函数 75 

    3.2.4 n-log-n函数 75 

    3.2.5 二次函数 76 

    3.2.6 三次函数和其他多项式 77 

    3.2.7 指数函数 77 

    3.2.8 比较增长率 79 

    3.3 渐近分析 79 

    3.3.1 大O符号 80 

    3.3.2 比较分析 82 

    3.3.3 算法分析示例 84 

    3.4 简单的证明技术 89 

    3.4.1 示例 89 

    3.4.2 反证法 89 

    3.4.3 归纳和循环不变量 90 

    3.5 练习 91 

    扩展阅读 95 

    第4章 递归 96 

    4.1 说明性的例子 96 

    4.1.1 阶乘函数 96 

    4.1.2 绘制英式标尺 97 

    4.1.3 二分查找 99 

    4.1.4 文件系统 101 

    4.2 分析递归算法 104 

    4.3 递归算法的不足 106 

    4.4 递归的其他例子 109 

    4.4.1 线性递归 109 

    4.4.2 二路递归 112 

    4.4.3 多重递归 113 

    4.5 设计递归算法 114 

    4.6 消除尾递归 115 

    4.7 练习 116 

    扩展阅读 118 

    第5章 基于数组的序列 119 

    5.1 Python序列类型 119 

    5.2 低层次数组 119 

    5.2.1 引用数组 121 

    5.2.2 Python中的紧凑数组 122 

    5.3 动态数组和摊销 124 

    5.3.1 实现动态数组 126 

    5.3.2 动态数组的摊销分析 127 

    5.3.3 Python列表类 130 

    5.4 Python序列类型的效率 130 

    5.4.1 Python的列表和元组类 130 

    5.4.2 Python的字符串类 134 

    5.5 使用基于数组的序列 136 

    5.5.1 为游戏存储高分 136 

    5.5.2 为序列排序 138 

    5.5.3 简单密码技术 140 

    5.6 多维数据集 142 

    5.7 练习 145 

    扩展阅读 147 

    第6章 栈、队列和双端队列 148 

    6.1 栈 148 

    6.1.1 栈的抽象数据类型 148 

    6.1.2 简单的基于数组的栈实现 149 

    6.1.3 使用栈实现数据的逆置 152 

    6.1.4 括号和HTML标记匹配 152 

    6.2 队列 155 

    6.2.1 队列的抽象数据类型 155 

    6.2.2 基于数组的队列实现 156 

    6.3 双端队列 160 

    6.3.1 双端队列的抽象数据类型 160 

    6.3.2 使用环形数组实现双端队列 161 

    6.3.3 Python collections模块中的双端队列 162 

    6.4 练习 163 

    扩展阅读 165 

    第7章 链表 166 

    7.1 单向链表 166 

    7.1.1 用单向链表实现栈 169 

    7.1.2 用单向链表实现队列 171 

    7.2 循环链表 173 

    7.2.1 轮转调度 173 

    7.2.2 用循环链表实现队列 174 

    7.3 双向链表 175 

    7.3.1 双向链表的基本实现 177 

    7.3.2 用双向链表实现双端队列 179 

    7.4 位置列表的抽象数据类型 180 

    7.4.1 含位置信息的列表抽象数据类型 182 

    7.4.2 双向链表实现 183 

    7.5 位置列表的排序 186 

    7.6 案例研究:维护访问频率 186 

    7.6.1 使用有序表 187 

    7.6.2 启发式动态调整列表 188 

    7.7 基于链接的序列与基于数组的序列 190 

    7.8 练习 192 

    扩展阅读 195 

    第8章 树 196 

    8.1 树的基本概念 196 

    8.1.1 树的定义和属性 196 

    8.1.2 树的抽象数据类型 199 

    8.1.3 计算深度和高度 201 

    8.2 二叉树 203 

    8.2.1 二叉树的抽象数据类型 204 

    8.2.2 二叉树的属性 206 

    8.3 树的实现 207 

    8.3.1 二叉树的链式存储结构 207 

    8.3.2 基于数组表示的二叉树 212 

    8.3.3 一般树的链式存储结构 214 

    8.4 树的遍历算法 214 

    8.4.1 树的先序和后序遍历 214 

    8.4.2 树的广度优先遍历 216 

    8.4.3 二叉树的中
  • 内容简介:
    本书采用Python语言介绍数据结构和算法,包括其设计、分析和实施。本书源代码简洁、明确,面向对象的观点贯穿始终,通过继承大限度地提高代码重用,同时彰显不同抽象数据类型和算法之间的异同。
  • 作者简介:
    迈克尔·T. 古德里奇(Michael T. Goodrich) 加州大学欧文分校计算机科学系教授,之前是约翰·霍普金斯大学教授。他是AAAS、ACM和IEEE会士,曾荣获IEEE计算机协会技术成就奖和ACM卓越服务奖等。 

    罗伯托·塔马西亚(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 

    1.6 简单的输入和输出 20 

    1.6.1 控制台输入和输出 21 

    1.6.2 文件 21 

    1.7 异常处理 22 

    1.7.1 抛出异常 23 

    1.7.2 捕捉异常 24 

    1.8 迭代器和生成器 26 

    1.9 Python的其他便利特点 28 

    1.9.1 条件表达式 29 

    1.9.2 解析语法 29 

    1.9.3 序列类型的打包和解包 30 

    1.10 作用域和命名空间 31 

    1.11 模块和import语句 32 

    1.12 练习 34 

    扩展阅读 36 

    第2章 面向对象编程 37 

    2.1 目标、原则和模式 37 

    2.1.1 面向对象的设计目标 37 

    2.1.2 面向对象的设计原则 38 

    2.1.3 设计模式 39 

    2.2 软件开发 40 

    2.2.1 设计 40 

    2.2.2 伪代码 41 

    2.2.3 编码风格和文档 42 

    2.2.4 测试和调试 43 

    2.3 类定义 44 

    2.3.1 例子:CreditCard类 45 

    2.3.2 运算符重载和Python的特殊方法 48 

    2.3.3 例子:多维向量类 50 

    2.3.4 迭代器 51 

    2.3.5 例子:Range类 52 

    2.4 继承 53 

    2.4.1 扩展CreditCard类 54 

    2.4.2 数列的层次图 57 

    2.4.3 抽象基类 60 

    2.5 命名空间和面向对象 62 

    2.5.1 实例和类命名空间 62 

    2.5.2 名称解析和动态调度 65 

    2.6 深拷贝和浅拷贝 65 

    2.7 练习 67 

    扩展阅读 70 

    第3章 算法分析 71 

    3.1 实验研究 71 

    3.2 本书使用的7种函数 74 

    3.2.1 常数函数 74 

    3.2.2 对数函数 74 

    3.2.3 线性函数 75 

    3.2.4 n-log-n函数 75 

    3.2.5 二次函数 76 

    3.2.6 三次函数和其他多项式 77 

    3.2.7 指数函数 77 

    3.2.8 比较增长率 79 

    3.3 渐近分析 79 

    3.3.1 大O符号 80 

    3.3.2 比较分析 82 

    3.3.3 算法分析示例 84 

    3.4 简单的证明技术 89 

    3.4.1 示例 89 

    3.4.2 反证法 89 

    3.4.3 归纳和循环不变量 90 

    3.5 练习 91 

    扩展阅读 95 

    第4章 递归 96 

    4.1 说明性的例子 96 

    4.1.1 阶乘函数 96 

    4.1.2 绘制英式标尺 97 

    4.1.3 二分查找 99 

    4.1.4 文件系统 101 

    4.2 分析递归算法 104 

    4.3 递归算法的不足 106 

    4.4 递归的其他例子 109 

    4.4.1 线性递归 109 

    4.4.2 二路递归 112 

    4.4.3 多重递归 113 

    4.5 设计递归算法 114 

    4.6 消除尾递归 115 

    4.7 练习 116 

    扩展阅读 118 

    第5章 基于数组的序列 119 

    5.1 Python序列类型 119 

    5.2 低层次数组 119 

    5.2.1 引用数组 121 

    5.2.2 Python中的紧凑数组 122 

    5.3 动态数组和摊销 124 

    5.3.1 实现动态数组 126 

    5.3.2 动态数组的摊销分析 127 

    5.3.3 Python列表类 130 

    5.4 Python序列类型的效率 130 

    5.4.1 Python的列表和元组类 130 

    5.4.2 Python的字符串类 134 

    5.5 使用基于数组的序列 136 

    5.5.1 为游戏存储高分 136 

    5.5.2 为序列排序 138 

    5.5.3 简单密码技术 140 

    5.6 多维数据集 142 

    5.7 练习 145 

    扩展阅读 147 

    第6章 栈、队列和双端队列 148 

    6.1 栈 148 

    6.1.1 栈的抽象数据类型 148 

    6.1.2 简单的基于数组的栈实现 149 

    6.1.3 使用栈实现数据的逆置 152 

    6.1.4 括号和HTML标记匹配 152 

    6.2 队列 155 

    6.2.1 队列的抽象数据类型 155 

    6.2.2 基于数组的队列实现 156 

    6.3 双端队列 160 

    6.3.1 双端队列的抽象数据类型 160 

    6.3.2 使用环形数组实现双端队列 161 

    6.3.3 Python collections模块中的双端队列 162 

    6.4 练习 163 

    扩展阅读 165 

    第7章 链表 166 

    7.1 单向链表 166 

    7.1.1 用单向链表实现栈 169 

    7.1.2 用单向链表实现队列 171 

    7.2 循环链表 173 

    7.2.1 轮转调度 173 

    7.2.2 用循环链表实现队列 174 

    7.3 双向链表 175 

    7.3.1 双向链表的基本实现 177 

    7.3.2 用双向链表实现双端队列 179 

    7.4 位置列表的抽象数据类型 180 

    7.4.1 含位置信息的列表抽象数据类型 182 

    7.4.2 双向链表实现 183 

    7.5 位置列表的排序 186 

    7.6 案例研究:维护访问频率 186 

    7.6.1 使用有序表 187 

    7.6.2 启发式动态调整列表 188 

    7.7 基于链接的序列与基于数组的序列 190 

    7.8 练习 192 

    扩展阅读 195 

    第8章 树 196 

    8.1 树的基本概念 196 

    8.1.1 树的定义和属性 196 

    8.1.2 树的抽象数据类型 199 

    8.1.3 计算深度和高度 201 

    8.2 二叉树 203 

    8.2.1 二叉树的抽象数据类型 204 

    8.2.2 二叉树的属性 206 

    8.3 树的实现 207 

    8.3.1 二叉树的链式存储结构 207 

    8.3.2 基于数组表示的二叉树 212 

    8.3.3 一般树的链式存储结构 214 

    8.4 树的遍历算法 214 

    8.4.1 树的先序和后序遍历 214 

    8.4.2 树的广度优先遍历 216 

    8.4.3 二叉树的中
查看详情
系列丛书 / 更多
数据结构与算法:Python语言实现
Java编程思想(第4版)
[美]Bruce Eckel 著;陈昊鹏 译
数据结构与算法:Python语言实现
数据挖掘:概念与技术(原书第3版)
[美]Jiawei、[美]Micheling、[美]Jian Pei 著;范明、孟小峰 译
数据结构与算法:Python语言实现
算法导论(原书第3版)
[美]Thomas、[美]Charles、[美]Ronald、[美]Clifford Stein 著;殷建平、徐云、王刚 译
数据结构与算法:Python语言实现
数据结构与算法分析:Java语言描述
[美]马克·艾伦·维斯 著;陈越 译
数据结构与算法:Python语言实现
深入理解计算机系统(原书第3版)
[美]兰德尔 E.布莱恩特(Randal E.·Bryant) 著;龚奕利、贺莲 译
数据结构与算法:Python语言实现
C程序设计语言(第二版)
[美]Brian(布莱恩·克尼汉)、[美]Dennis M.Ritchie(丹尼斯·里奇) 著;徐宝文、李志 译
数据结构与算法:Python语言实现
C程序设计语言(第2版·新版) 习题解答
吉米拜尔 著;杨涛 译;[美]汤朵
数据结构与算法:Python语言实现
计算机科学丛书·云计算:概念、技术与架构
[美]Thomas、[英]Zaigham、[巴西]Ricardo Puttini 著;龚奕利、贺莲、胡创 译
数据结构与算法:Python语言实现
数据库系统概念:(原书第6版)
[美]Abraham、Henry、S.Sudarshan 著;杨冬青、李红燕、唐世渭 译
数据结构与算法:Python语言实现
编译原理:原理、技术与工具
[美]阿霍 著;赵建华 译
数据结构与算法:Python语言实现
计算机科学导论:原书第3版
[美]Behrouz Forouzan 著;刘艺 译
数据结构与算法:Python语言实现
需求分析与系统设计
[澳]麦斯阿塞克 著;马素霞 译
相关图书 / 更多
数据结构与算法:Python语言实现
数据中心经营之道 唐汝林 等
唐汝林 等
数据结构与算法:Python语言实现
数据管理十讲 袁野 崔斌 李战怀 等
袁野 崔斌 李战怀 等
数据结构与算法:Python语言实现
数据要素教程
杨东 白银 著
数据结构与算法:Python语言实现
数据驱动式教学:如何科学、有效、系统地提高学生成绩(深度剖析教学数据,助力教学决策,实时洞察学习动态,精准教学)
(美)罗伯特·J. 马扎诺,菲利普·B. 沃里克,卡梅伦·L. 雷恩斯 ,理查德·杜富尔著,张庆彬译; 中青文 出品
数据结构与算法:Python语言实现
数据确权的理论基础探索
彭诚信、史晓宇 著
数据结构与算法:Python语言实现
数据经济学
赵昌文,戎珂
数据结构与算法:Python语言实现
数据挖掘竞赛实战:方法与案例
许可乐
数据结构与算法:Python语言实现
数据要素估值
刘赛红、吕颖毅、王连军
数据结构与算法:Python语言实现
数据驱动的物流选址与调度模型及其实践
木仁 徐志强
数据结构与算法:Python语言实现
数据存储架构与技术(第2版)
舒继武
数据结构与算法:Python语言实现
数据与人工智能驱动型公司:用数据和人工智能升级企业
(西) 理查德·本杰明(Richard Benjamins)
数据结构与算法:Python语言实现
数据库管理系统原理与实现
杜小勇、陈红、卢卫
您可能感兴趣 / 更多
数据结构与算法:Python语言实现
超可爱手帐简笔画:一学就会
Good Color编辑部
数据结构与算法:Python语言实现
Golden Son: Book 2 of the Red Rising Saga (Red Rising Series)
Goodwill Books (Hillsboro;OR;U.S.A
数据结构与算法:Python语言实现
The Omen Machine
Goodkind, Terry
数据结构与算法:Python语言实现
Arcadia Falls A Novel
Goodman, Carol
数据结构与算法:Python语言实现
Decision Analysis for Management Judgment
Goodwin, Paul;Wright, George
数据结构与算法:Python语言实现
Gooseberry Patch All Through The Seasons Recipes & Crafts
Gooseberry Patch 著
数据结构与算法:Python语言实现
Fix-It and Forget-It Big Cookbook: 1400 Best Slow Cooker Recipes!
Good;Phyllis
数据结构与算法:Python语言实现
Intuition
Goodman, Allegra
数据结构与算法:Python语言实现
Let'sLearnGermanDictionary
Goodman 著;Marlene Goodman 绘
数据结构与算法:Python语言实现
Geostatistics for Natural Resources Evaluation
Goovaerts;Pierre