展开全部

主编推荐语

用Python描述数据结构与算法的开山之作,汇聚了作者多年的实战经验。

内容简介

了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益广泛的应用,Python程序员需要实现与传统的面向对象编程语言相似的数据结构与算法。

本书是用Python描述数据结构与算法的开山之作,汇聚了作者多年的实战经验,向读者透彻讲解在Python环境下,如何通过一系列存储机制高效地实现各类算法。

通过本书,读者将深刻理解Python数据结构、递归、搜索、排序、树与图的应用,等等。

目录

  • 版权信息
  • 前言
  • 致学生
  • 致教师
  • 本书结构
  • 新版改进
  • 致谢
  • 第1章 导论
  • 1.1 本章目标
  • 1.2 入门
  • 1.3 何谓计算机科学
  • 1.3.1 何谓编程
  • 1.3.2 为何学习数据结构及抽象数据类型
  • 1.3.3 为何学习算法
  • 1.4 Python基础
  • 1.4.1 数据
  • 1.4.2 输入与输出
  • 1.4.3 控制结构
  • 1.4.4 异常处理
  • 1.4.5 定义函数
  • 1.4.6 Python面向对象编程:定义类
  • 1.5 小结
  • 1.6 关键术语
  • 1.7 讨论题
  • 1.8 编程练习
  • 第2章 算法分析
  • 2.1 本章目标
  • 2.2 何谓算法分析
  • 2.2.1 大O记法
  • 2.2.2 异序词检测示例
  • 2.3 Python数据结构的性能
  • 2.3.1 列表
  • 2.3.2 字典
  • 2.4 小结
  • 2.5 关键术语
  • 2.6 讨论题
  • 2.7 编程练习
  • 第3章 基本数据结构
  • 3.1 本章目标
  • 3.2 何谓线性数据结构
  • 3.3 栈
  • 3.3.1 何谓栈
  • 3.3.2 栈抽象数据类型
  • 3.3.3 用Python实现栈
  • 3.3.4 匹配括号
  • 3.3.5 普通情况:匹配符号
  • 3.3.6 将十进制数转换成二进制数
  • 3.3.7 前序、中序和后序表达式
  • 3.4 队列
  • 3.4.1 何谓队列
  • 3.4.2 队列抽象数据类型
  • 3.4.3 用Python实现队列
  • 3.4.4 模拟:传土豆
  • 3.4.5 模拟:打印任务
  • 3.5 双端队列
  • 3.5.1 何谓双端队列
  • 3.5.2 双端队列抽象数据类型
  • 3.5.3 用Python实现双端队列
  • 3.5.4 回文检测器
  • 3.6 列表
  • 3.6.1 无序列表抽象数据类型
  • 3.6.2 实现无序列表:链表
  • 3.6.3 有序列表抽象数据类型
  • 3.6.4 实现有序列表
  • 3.7 小结
  • 3.8 关键术语
  • 3.9 讨论题
  • 3.10 编程练习
  • 第4章 递归
  • 4.1 本章目标
  • 4.2 何谓递归
  • 4.2.1 计算一列数之和
  • 4.2.2 递归三原则
  • 4.2.3 将整数转换成任意进制的字符串
  • 4.3 栈帧:实现递归
  • 4.4 递归可视化
  • 谢尔平斯基三角形
  • 4.5 复杂的递归问题
  • 汉诺塔
  • 4.6 探索迷宫
  • 4.7 动态规划
  • 4.8 小结
  • 4.9 关键术语
  • 4.10 讨论题
  • 4.11 编程练习
  • 第5章 搜索和排序
  • 5.1 本章目标
  • 5.2 搜索
  • 5.2.1 顺序搜索
  • 5.2.2 二分搜索
  • 5.2.3 散列
  • 5.3 排序
  • 5.3.1 冒泡排序
  • 5.3.2 选择排序
  • 5.3.3 插入排序
  • 5.3.4 希尔排序
  • 5.3.5 归并排序
  • 5.3.6 快速排序
  • 5.4 小结
  • 5.5 关键术语
  • 5.6 讨论题
  • 5.7 编程练习
  • 第6章 树
  • 6.1 本章目标
  • 6.2 示例
  • 6.3 术语及定义
  • 6.4 实现
  • 6.4.1 列表之列表
  • 6.4.2 节点与引用
  • 6.5 二叉树的应用
  • 6.5.1 解析树
  • 6.5.2 树的遍历
  • 6.6 利用二叉堆实现优先级队列
  • 6.6.1 二叉堆的操作
  • 6.6.2 二叉堆的实现
  • 6.7 二叉搜索树
  • 6.7.1 搜索树的操作
  • 6.7.2 搜索树的实现
  • 6.7.3 搜索树的分析
  • 6.8 平衡二叉搜索树
  • 6.8.1 AVL树的性能
  • 6.8.2 AVL树的实现
  • 6.8.3 映射实现总结
  • 6.9 小结
  • 6.10 关键术语
  • 6.11 讨论题
  • 6.12 编程练习
  • 第7章 图及其算法
  • 7.1 本章目标
  • 7.2 术语及定义
  • 7.3 图的抽象数据类型
  • 7.3.1 邻接矩阵
  • 7.3.2 邻接表
  • 7.3.3 实现
  • 7.4 宽度优先搜索
  • 7.4.1 词梯问题
  • 7.4.2 构建词梯图
  • 7.4.3 实现宽度优先搜索
  • 7.4.4 分析宽度优先搜索
  • 7.5 深度优先搜索
  • 7.5.1 骑士周游问题
  • 7.5.2 构建骑士周游图
  • 7.5.3 实现骑士周游
  • 7.5.4 分析骑士周游
  • 7.5.5 通用深度优先搜索
  • 7.5.6 分析深度优先搜索
  • 7.6 拓扑排序
  • 7.7 强连通单元
  • 7.8 最短路径问题
  • 7.8.1 Dijkstra算法
  • 7.8.2 分析Dijkstra算法
  • 7.8.3 Prim算法
  • 7.9 小结
  • 7.10 关键术语
  • 7.11 讨论题
  • 7.12 编程练习
  • 第8章 附加内容
  • 8.1 本章目标
  • 8.2 复习Python列表
  • 8.3 复习递归
  • 8.3.1 同余定理
  • 8.3.2 幂剩余
  • 8.3.3 最大公因数与逆元
  • 8.3.4 RSA算法
  • 8.4 复习字典:跳表
  • 8.4.1 映射抽象数据类型
  • 8.4.2 用Python实现字典
  • 8.5 复习树:量化图片
  • 8.5.1 数字图像概述
  • 8.5.2 量化图片
  • 8.5.3 使用八叉树改进量化算法
  • 8.6 复习图:模式匹配
  • 8.6.1 生物学字符串
  • 8.6.2 简单比较
  • 8.6.3 使用图:DFA
  • 8.6.4 使用图:KMP
  • 8.7 小结
  • 8.8 关键术语
  • 8.9 讨论题
  • 8.10 编程练习
  • 附录A Python图形包
  • 附录B Python资源
  • 参考资料
展开全部

评分及书评

4.5
4个评分
  • 用户头像
    给这本书评了
    5.0

    本书将介绍计算机科学,也会介绍 Python。然而,书中的内容并不仅仅局限于这两个方面。学习数据结构与算法对理解计算机科学的本质非常关键。学习计算机科学与掌握其他高难度学科没什么不同。成功的唯一途径便是循序渐进地学习其中的核心思想。

      转发
      评论

    出版方

    人民邮电出版社·图灵出品

    图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。