资料分享:送你一本《数据结构与算法:Python语言描述》电子书!

下图为 TIOBE 3月编程语言排行榜。

TIOBE排行榜

从榜单来看,曾经铁打的 Java、C、C++ 局势,早已在数月前被 Python 的闯入而打破。究其根由,并非是 C++ 的应用领域正在逐渐缩减,而是随着人工智能、机器学习的崛起,适用于该领域的 Python 才会水涨船高,带起了市场份额,而且这种份额有扩大的趋势。

所以,学习 Python 也就变成对我们的一个新要求。要想深入的了解一门语言最好的方式就是利用这门语言去定义结构,故在网上找到这本电子书与大家分享。


目录

前言

第1章 绪论

  • 1.1计算机问题求解
  • 程序开发过程
  • 一个简单例子
  • 1.2 问题求解:交叉路口的红绿灯安排
  • 问题分析和严格化
  • 图的顶点分组和算法
  • 算法的精化和Python描述
  • 讨论
  • 1.3 算法和算法分析
  • 问题、问题实例和算法
  • 算法的代价及其度量
  • 算法分析
  • Python程序的计算代价(复杂度)
  • 1.4 数据结构
  • 数据结构及其分类
  • 计算机内存对象表示
  • Python对象和数据结构
  • 练习

第2章 抽象数据类型和Python类

  • 2.1 抽象数据类型
  • 数据类型和数据构造
  • 抽象数据类型的概念
  • 抽象数据类型的描述
  • 2.2 Python的类
  • 有理数类
  • 类定义进阶
  • 本书采用的ADT描述形式
  • 2.3 类的定义和使用
  • 类的基本定义和使用
  • 实例对象:初始化和使用
  • 几点说明
  • 继承
  • 2.4 Python异常
  • 异常类和自定义异常
  • 异常的传播和捕捉
  • 内置的标准异常类
  • 2.5 类定义实例:学校人事管理系统中的类
  • 问题分析和设计
  • 人事记录类的实现
  • 讨论
  • 本章总结
  • 练习

第3章线性表

  • 3.1 线性表的概念和表抽象数据类型
  • 表的概念和性质
  • 表抽象数据类型
  • 线性表的实现:基本考虑
  • 3.2 顺序表的实现
  • 基本实现方式
  • 顺序表基本操作的实现
  • 顺序表的结构
  • Python的list
  • 顺序表的简单总结
  • 3.3 链接表
  • 线性表的基本需要和链接表
  • 单链表
  • 单链表类的实现
  • 3.4 链表的变形和操作
  • 单链表的简单变形
  • 循环单链表
  • 双链表
  • 两个链表操作
  • 不同链表的简单总结
  • 3.5 表的应用
  • Josephus问题和基于“数组”概念的解法
  • 基于顺序表的解
  • 基于循环单链表的解
  • 本章总结
  • 练习

第4章 字符串

  • 4.1 字符集、字符串和字符串操作
  • 字符串的相关概念
  • 字符串抽象数据类型
  • 4.2 字符串的实现
  • 基本实现问题和技术
  • 实际语言里的字符串
  • Python的字符串
  • 4.3 字符串匹配(子串查找)
  • 字符串匹配
  • 串匹配和朴素匹配算法
  • 无回溯串匹配算法(KMP算法)
  • 4.4 字符串匹配问题
  • 串匹配/搜索的不同需要
  • 一种简化的正则表达式
  • 4.5 Python正则表达式
  • 概况
  • 基本情况
  • 主要操作
  • 正则表达式的构造
  • 正则表达式的使用
  • 本章总结
  • 练习

第5章 栈和队列

  • 5.1 概述
  • 栈、队列和数据使用顺序
  • 应用环境
  • 5.2 栈:概念和实现
  • 栈抽象数据类型
  • 栈的顺序表实现
  • 栈的链接表实现
  • 5.3 栈的应用
  • 简单应用:括号匹配问题
  • 表达式的表示、计算和变换
  • 栈与递归
  • 5.4 队列
  • 队列抽象数据类型
  • 队列的链接表实现
  • 队列的顺序表实现
  • 队列的list实现
  • 队列的应用
  • 5.5 迷宫求解和状态空间搜索
  • 迷宫求解:分析和设计
  • 求解迷宫的算法
  • 迷宫问题和搜索
  • 5.6 几点补充
  • 几种与栈或队列相关的结构
  • 几个问题的讨论
  • 本章总结
  • 练习

第6章 二叉树和树

  • 6.1 二叉树:概念和性质
  • 概念和性质
  • 抽象数据类型
  • 遍历二叉树
  • 6.2 二叉树的list实现
  • 设计和实现
  • 二叉树的简单应用:表达式树
  • 6.3 优先队列
  • 概念
  • 基于线性表的实现
  • 树形结构和堆
  • 优先队列的堆实现
  • 堆的应用:堆排序
  • 6.4 应用:离散事件模拟
  • 通用的模拟框架
  • 海关检查站模拟系统
  • 6.5 二叉树的类实现
  • 二叉树结点类
  • 遍历算法
  • 二叉树类
  • 6.6 哈夫曼树
  • 哈夫曼树和哈夫曼算法
  • 哈夫曼算法的实现
  • 哈夫曼编码
  • 6.7 树和树林
  • 实例和表示
  • 定义和相关概念
  • 抽象数据类型和操作
  • 树的实现
  • 树的Python实现
  • 本章总结
  • 练习

第7章 图

  • 7.1 概念、性质和实现
  • 定义和图示
  • 图的一些概念和性质
  • 图抽象数据类型
  • 图的表示和实现
  • 7.2 图结构的Python实现
  • 邻接矩阵实现
  • 压缩的邻接矩阵(邻接表)实现
  • 小结
  • 7.3 基本图算法
  • 图的遍历
  • 生成树
  • 7.4 *小生成树
  • *小生成树问题
  • Kruskal算法
  • Prim算法
  • Prim算法的改进
  • *小生成树问题
  • 7.5 *短路径
  • *短路径问题
  • 求解单源点*短路径的Dijkstra算法
  • 求解任意顶点间*短路径的Floyd算法
  • 7.6 AOV/AOE网及其算法
  • AOV网、拓扑排序和拓扑序列
  • 拓扑排序算法
  • AOE网和关键路径
  • 关键路径算法
  • 本章总结
  • 练习

第8章 字典和集合

  • 8.1 数据存储、检索和字典
  • 数据存储和检索
  • 字典实现的问题
  • 8.2 字典线性表实现
  • 基本实现
  • 有序线性表和二分法检索
  • 字典线性表总结
  • 8.3 散列和散列表
  • 散列的思想和应用
  • 散列函数
  • 冲突的内消解:开地址技术
  • 外消解技术
  • 散列表的性质
  • 8.4 集合
  • 集合的概念、运算和抽象数据类型
  • 集合的实现
  • 特殊实现技术:位向量实现
  • 8.5 Python的标准字典类dict和set
  • 8.6 二叉排序树和字典
  • 二叉排序树
  • **二叉排序树
  • 一般情况的**二叉排序树
  • 8.7 平衡二叉树
  • 定义和性质
  • AVL树类
  • 插入操作
  • 相关问题
  • 8.8 动态多分支排序树
  • 多分支排序树
  • B树
  • B+树
  • 本章总结
  • 练习

第9章 排序

  • 9.1 问题和性质
  • 问题定义
  • 排序算法
  • 9.2 简单排序算法
  • 插入排序
  • 选择排序
  • 交换排序
  • 9.3 快速排序
  • 快速排序的表实现
  • 程序实现
  • 复杂度
  • 另一种简单实现
  • 9.4 归并排序
  • 顺序表的归并排序
  • 归并算法的设计问题
  • 归并排序函数定义
  • 算法分析
  • 9.5 其他排序方法
  • 分配排序和基数排序
  • 一些与排序有关的问题
  • Python系统的list排序
  • 本章总结
  • 练习

参考文献


图书推荐:

1. Python编程 从入门到实践

  • 作 者:[美] 埃里克·马瑟斯 著 袁国忠 译
  • 出版社:人民邮电出版社

2. 数据结构教程(第3版)

  • 作 者:唐发根
  • 出版社:北京航空航天大学出版社

3. C++ Primer Plus(第6版 中文版)

  • 作 者:[美] Stephen Prata 著 张海龙 译
  • 出版社:人民邮电出版社

4. C Primer Plus 第6版 中文版

  • 作 者:[美] 史蒂芬·普拉达 著 姜佑 译
  • 出版社:人民邮电出版社

5. 剑指Offer:名企面试官精讲典型编程题(第2版)

  • 作 者:何海涛 著
  • 出版社:电子工业出版社

相关图文:


下载《数据结构与算法:Python语言描述》

关注公众号,后台回复

20190403

老马的程序人生 CSDN认证博客专家 终身学习者
我是终身学习者“老马”,一个长期践行“结伴式学习”理念的中年大叔。我崇尚分享,渴望成长,于2010年创立了“LSGO软件技术团队”,并加入了国内著名的开源组织“Datawhale”,也是“Dre@mtech”、“智能机器人研究中心”和“大数据与哲学社会科学实验室”的一员。愿我们一起学习,一起进步,相互陪伴,共同成长。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页