下图为 TIOBE 3月编程语言排行榜。
从榜单来看,曾经铁打的 Java、C、C++ 局势,早已在数月前被 Python 的闯入而打破。究其根由,并非是 C++ 的应用领域正在逐渐缩减,而是随着人工智能、机器学习的崛起,适用于该领域的 Python 才会水涨船高,带起了市场份额,而且这种份额有扩大的趋势。
所以,学习 Python 也就变成对我们的一个新要求。要想深入的了解一门语言最好的方式就是利用这门语言去定义结构,故在网上找到这本电子书与大家分享。
目录
<b>前言</b>
<b>第1章 绪论</b>
- 1.1计算机问题求解
- <u>程序开发过程</u>
- <u>一个简单例子</u>
- 1.2 问题求解:交叉路口的红绿灯安排
- <u> 问题分析和严格化</u>
- <u> 图的顶点分组和算法</u>
- <u> 算法的精化和Python描述</u>
- <u> 讨论</u>
- 1.3 算法和算法分析
- <u> 问题、问题实例和算法</u>
- <u> 算法的代价及其度量</u>
- <u> 算法分析</u>
- <u> Python程序的计算代价(复杂度)</u>
- 1.4 数据结构
- <u> 数据结构及其分类</u>
- <u> 计算机内存对象表示</u>
- <u> Python对象和数据结构</u>
- 练习
<b>第2章 抽象数据类型和Python类</b>
- 2.1 抽象数据类型
- <u> 数据类型和数据构造</u>
- <u> 抽象数据类型的概念</u>
- <u> 抽象数据类型的描述</u>
- 2.2 Python的类
- <u> 有理数类</u>
- <u> 类定义进阶</u>
- <u> 本书采用的ADT描述形式</u>
- 2.3 类的定义和使用
- <u> 类的基本定义和使用</u>
- <u> 实例对象:初始化和使用</u>
- <u> 几点说明</u>
- <u> 继承</u>
- 2.4 Python异常
- <u> 异常类和自定义异常</u>
- <u> 异常的传播和捕捉</u>
- <u> 内置的标准异常类</u>
- 2.5 类定义实例:学校人事管理系统中的类
- <u> 问题分析和设计</u>
- <u> 人事记录类的实现</u>
- <u> 讨论</u>
- 本章总结
- 练习
<b>第3章线性表</b>
- 3.1 线性表的概念和表抽象数据类型
- <u> 表的概念和性质</u>
- <u> 表抽象数据类型</u>
- <u> 线性表的实现:基本考虑</u>
- 3.2 顺序表的实现
- <u> 基本实现方式</u>
- <u> 顺序表基本操作的实现</u>
- <u> 顺序表的结构</u>
- <u> Python的list</u>
- <u> 顺序表的简单总结</u>
- 3.3 链接表
- <u> 线性表的基本需要和链接表</u>
- <u> 单链表</u>
- <u> 单链表类的实现</u>
- 3.4 链表的变形和操作
- <u> 单链表的简单变形</u>
- <u> 循环单链表</u>
- <u> 双链表</u>
- <u> 两个链表操作</u>
- <u> 不同链表的简单总结</u>
- 3.5 表的应用
- <u> Josephus问题和基于“数组”概念的解法</u>
- <u> 基于顺序表的解</u>
- <u> 基于循环单链表的解</u>
- 本章总结
- 练习
<b>第4章 字符串</b>
- 4.1 字符集、字符串和字符串操作
- <u> 字符串的相关概念</u>
- <u> 字符串抽象数据类型</u>
- 4.2 字符串的实现
- <u> 基本实现问题和技术</u>
- <u> 实际语言里的字符串</u>
- <u> Python的字符串</u>
- 4.3 字符串匹配(子串查找)
- <u> 字符串匹配</u>
- <u> 串匹配和朴素匹配算法</u>
- <u> 无回溯串匹配算法(KMP算法)</u>
- 4.4 字符串匹配问题
- <u> 串匹配/搜索的不同需要</u>
- <u> 一种简化的正则表达式</u>
- 4.5 Python正则表达式
- <u> 概况</u>
- <u> 基本情况</u>
- <u> 主要操作</u>
- <u> 正则表达式的构造</u>
- <u> 正则表达式的使用</u>
- 本章总结
- 练习
<b>第5章 栈和队列</b>
- 5.1 概述
- <u> 栈、队列和数据使用顺序</u>
- <u> 应用环境</u>
- 5.2 栈:概念和实现
- <u> 栈抽象数据类型</u>
- <u> 栈的顺序表实现</u>
- <u> 栈的链接表实现</u>
- 5.3 栈的应用
- <u> 简单应用:括号匹配问题</u>
- <u> 表达式的表示、计算和变换</u>
- <u> 栈与递归</u>
- 5.4 队列
- <u> 队列抽象数据类型</u>
- <u> 队列的链接表实现</u>
- <u> 队列的顺序表实现</u>
- <u> 队列的list实现</u>
- <u> 队列的应用</u>
- 5.5 迷宫求解和状态空间搜索
- <u> 迷宫求解:分析和设计</u>
- <u> 求解迷宫的算法</u>
- <u> 迷宫问题和搜索</u>
- 5.6 几点补充
- <u> 几种与栈或队列相关的结构</u>
- <u> 几个问题的讨论</u>
- 本章总结
- 练习
<b>第6章 二叉树和树</b>
- 6.1 二叉树:概念和性质
- <u> 概念和性质</u>
- <u> 抽象数据类型</u>
- <u> 遍历二叉树</u>
- 6.2 二叉树的list实现
- <u> 设计和实现</u>
- <u> 二叉树的简单应用:表达式树</u>
- 6.3 优先队列
- <u> 概念</u>
- <u> 基于线性表的实现</u>
- <u> 树形结构和堆</u>
- <u> 优先队列的堆实现</u>
- <u> 堆的应用:堆排序</u>
- 6.4 应用:离散事件模拟
- <u> 通用的模拟框架</u>
- <u> 海关检查站模拟系统</u>
- 6.5 二叉树的类实现
- <u> 二叉树结点类</u>
- <u> 遍历算法</u>
- <u> 二叉树类</u>
- 6.6 哈夫曼树
- <u> 哈夫曼树和哈夫曼算法</u>
- <u> 哈夫曼算法的实现</u>
- <u> 哈夫曼编码</u>
- 6.7 树和树林
- <u> 实例和表示</u>
- <u> 定义和相关概念</u>
- <u> 抽象数据类型和操作</u>
- <u> 树的实现</u>
- <u> 树的Python实现</u>
- 本章总结
- 练习
<b>第7章 图</b>
- 7.1 概念、性质和实现
- <u> 定义和图示</u>
- <u> 图的一些概念和性质</u>
- <u> 图抽象数据类型</u>
- <u> 图的表示和实现</u>
- 7.2 图结构的Python实现
- <u> 邻接矩阵实现</u>
- <u> 压缩的邻接矩阵(邻接表)实现</u>
- <u> 小结</u>
- 7.3 基本图算法
- <u> 图的遍历</u>
- <u> 生成树</u>
- 7.4 *小生成树
- <u> *小生成树问题</u>
- <u> Kruskal算法</u>
- <u> Prim算法</u>
- <u> Prim算法的改进</u>
- <u> *小生成树问题</u>
- 7.5 *短路径
- <u> *短路径问题</u>
- <u> 求解单源点*短路径的Dijkstra算法</u>
- <u> 求解任意顶点间*短路径的Floyd算法</u>
- 7.6 AOV/AOE网及其算法
- <u> AOV网、拓扑排序和拓扑序列</u>
- <u> 拓扑排序算法</u>
- <u> AOE网和关键路径</u>
- <u> 关键路径算法</u>
- 本章总结
- 练习
<b>第8章 字典和集合</b>
- 8.1 数据存储、检索和字典
- <u> 数据存储和检索</u>
- <u> 字典实现的问题</u>
- 8.2 字典线性表实现
- <u> 基本实现</u>
- <u> 有序线性表和二分法检索</u>
- <u> 字典线性表总结</u>
- 8.3 散列和散列表
- <u> 散列的思想和应用</u>
- <u> 散列函数</u>
- <u> 冲突的内消解:开地址技术</u>
- <u> 外消解技术</u>
- <u> 散列表的性质</u>
- 8.4 集合
- <u> 集合的概念、运算和抽象数据类型</u>
- <u> 集合的实现</u>
- <u> 特殊实现技术:位向量实现</u>
- 8.5 Python的标准字典类dict和set
- 8.6 二叉排序树和字典
- <u> 二叉排序树</u>
- <u> **二叉排序树</u>
- <u> 一般情况的**二叉排序树</u>
- 8.7 平衡二叉树
- <u> 定义和性质</u>
- <u> AVL树类</u>
- <u> 插入操作</u>
- <u> 相关问题</u>
- 8.8 动态多分支排序树
- <u> 多分支排序树</u>
- <u> B树</u>
- <u> B+树</u>
- 本章总结
- 练习
<b>第9章 排序</b>
- 9.1 问题和性质
- <u> 问题定义</u>
- <u> 排序算法</u>
- 9.2 简单排序算法
- <u> 插入排序</u>
- <u> 选择排序</u>
- <u> 交换排序</u>
- 9.3 快速排序
- <u> 快速排序的表实现</u>
- <u> 程序实现</u>
- <u> 复杂度</u>
- <u> 另一种简单实现</u>
- 9.4 归并排序
- <u> 顺序表的归并排序</u>
- <u> 归并算法的设计问题</u>
- <u> 归并排序函数定义</u>
- <u> 算法分析</u>
- 9.5 其他排序方法
- <u> 分配排序和基数排序</u>
- <u> 一些与排序有关的问题</u>
- <u> Python系统的list排序</u>
- 本章总结
- 练习
<b>参考文献</b>
图书推荐:
<b><u>1. Python编程 从入门到实践</u></b>
- 作 者:[美] 埃里克·马瑟斯 著 袁国忠 译
- 出版社:人民邮电出版社
<b><u>2. 数据结构教程(第3版)</u></b>
- 作 者:唐发根
- 出版社:北京航空航天大学出版社
<b><u>3. C++ Primer Plus(第6版 中文版)</u></b>
- 作 者:[美] Stephen Prata 著 张海龙 译
- 出版社:人民邮电出版社
<b><u>4. C Primer Plus 第6版 中文版</u></b>
- 作 者:[美] 史蒂芬·普拉达 著 姜佑 译
- 出版社:人民邮电出版社
<b><u>5. 剑指Offer:名企面试官精讲典型编程题(第2版)</u></b>
- 作 者:何海涛 著
- 出版社:电子工业出版社
相关图文:
- 如何利用 C# 爬取「京东 - 计算机与互联网图书销量榜」!
- 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
- 如何利用 C# 爬取「互动出版网 - 计算机图书销量榜」!
- 如何利用 C# 爬取「中国图书网 - 计算机与互联网图书销量榜」!
下载《数据结构与算法:Python语言描述》
关注公众号,后台回复
20190403