下图为 TIOBE 3月编程语言排行榜。
从榜单来看,曾经铁打的 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排序
- 本章总结
- 练习
参考文献
图书推荐:
- 作 者:[美] 埃里克·马瑟斯 著 袁国忠 译
- 出版社:人民邮电出版社
- 作 者:唐发根
- 出版社:北京航空航天大学出版社
- 作 者:[美] Stephen Prata 著 张海龙 译
- 出版社:人民邮电出版社
- 作 者:[美] 史蒂芬·普拉达 著 姜佑 译
- 出版社:人民邮电出版社
- 作 者:何海涛 著
- 出版社:电子工业出版社
相关图文:
- 如何利用 C# 爬取「京东 - 计算机与互联网图书销量榜」!
- 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
- 如何利用 C# 爬取「互动出版网 - 计算机图书销量榜」!
- 如何利用 C# 爬取「中国图书网 - 计算机与互联网图书销量榜」!
下载《数据结构与算法:Python语言描述》
关注公众号,后台回复
20190403