前言
章数据结构与算法
1.1程序
1.2数据结构
1.2.1数据结构的核心地位
1.2.2数据结构的组成
1.3算法
1.3.1算法的5个属性
1.3.2算法的3个层次
1.4算法复杂度
1.4.1空间复杂度
1.4.2时间复杂度
1.4.3提高算法效率的方法
1.5算法表示方式
1.5.1流程图
1.5.2N-S图
1.5.3伪语言
1.6习题
第2章Python开发环境
2.1Python简介
2.1.1Python的特点
2.1.2Python的应用场合
2.2Python解释器
2.2.1Ubuntu下安装Python
2.2.2Windows下安装Python
2.3Python编辑器
2.3.1IDLE
2.3.2PyCharm
2.3.3Anaconda
2.3.4JupyterNotebook
2.4代码书写规则
2.4.1缩进
2.4.2逻辑行与物理行
2.4.3注释
2.4.4编码风格
2.5习题
第3章Python数据类型
3.1变量
3.1.1变量命名
3.1.2变量引用
3.2运算符
3.2.1算术运算符
3.2.2关系运算符
3.2.3赋值运算符
3.2.4逻辑运算符
3.2.5位运算符
3.2.6成员运算符
3.2.7身份运算符
3.3表达式
3.3.1表达式的概念
3.3.2运算符的优先级
3.4数据类型
3.4.1数据类型的概念
3.4.2数据类型的分类
3.5数值
3.5.1数值的概念
3.5.2数值的操作
3.6列表
3.6.1列表的概念
3.6.2列表的操作
3.7元组
3.7.1元组的概念
3.7.2元组的操作
3.8字符串
3.8.1字符串的概念
3.8.2字符串的操作
3.9字典
3.9.1字典的概念
3.9.2字典的操作
3.10集合
3.10.1集合的概念
3.10.2集合的操作
3.10.3集合运算
3.11组合数据总结
3.11.1相互关系
3.11.2数据类型转换
3.12实例
3.12.1发扑克牌
3.12.2统计相同单词出现的次数
3.12.3计算两个日期间隔天数
3.13习题
第4章Python三大结构
4.13种基本结构
4.2顺序结构
4.2.1输入、处理和输出
4.2.2顺序程序设计举例
4.3选择结构
4.3.1单分支
4.3.2双分支
4.3.3多分支
4.3.4分支嵌套
4.4循环概述
4.4.1循环结构
4.4.2循环分类
4.5while语句
4.5.1基本形式
4.5.2else语句
4.5.3无限循环
4.6for语句
4.6.1应用序列类型
4.6.2内置函数range()
4.7循环嵌套
4.7.1循环嵌套的概念
4.7.2循环嵌套实现
4.8辅助语句
4.8.1break语句
4.8.2continue语句
4.8.3pass语句
4.9迭代器
4.9.1iter()方法
4.9.2next()方法
4.10实例
4.10.1猴子吃桃问题
4.10.2买地铁车票
4.10.3打印金字塔
4.10.4冰雹数列
4.10.5输出特定三角形
4.11习题
第5章函数
5.1函数声明与调用
5.1.1函数声明
5.1.2函数调用
5.1.3函数返回值
5.2参数传递
5.2.1实参与形参
5.2.2传对象引用
5.3参数分类
5.3.1必备参数
5.3.2默认参数
5.3.3关键参数
5.3.4不定长参数
5.4两类特殊函数
5.4.1lambda函数
5.4.2递归函数
5.5变量作用域
5.5.1局部变量
5.5.2全局变量
5.6实例
5.6.1筛选法求素数
5.6.2可逆素数
5.6.3递归求xn
5.6.4孪生素数
5.6.5汉诺塔
5.6.6完全数
5.6.7逆置
5.6.8气温上升最长天数
5.6.9兔子上楼梯
5.7习题
第6章线性表
6.1线性表的相关概念
6.2线性表的存储
6.2.1线性存储
6.2.2链式存储
6.3单链表操作
6.3.1单链表的概述
6.3.2单链表的操作实现
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.7.4字符串统计
6.7.5Anagrams问题
6.7.6年龄问题
6.7.7恺撒密码
6.8习题
第7章树和二叉树
7.1树和二叉树的概述
7.1.1树和二叉树的相关概念
7.1.2二叉树的性质
7.2二叉树存储
7.2.1顺序存储
7.2.2链式存储
7.3二叉树遍历
7.3.1先序遍历
7.3.2中序遍历
7.3.3后序遍历
7.3.4层序遍历
7.4由遍历序列创建二叉树
7.4.1由先序、中序推出后序遍历
7.4.2由中序、后序推出先序遍历
7.4.3由先序、后序推出中序遍历
7.5二叉树的创建
7.6哈夫曼树
7.6.1哈夫曼编码
7.6.2哈夫曼算法
7.7树和二叉树的关系
7.7.1树的存储
7.7.2树与二叉树转换
7.8实例
7.8.1打印二叉树深度
7.8.2打印二叉树左右视图
7.8.3二叉树左右交换
7.8.4括号组合
7.8.5对称二叉树
7.9习题
第8章图
8.1图的概述
8.1.1图的相关概念
8.1.2NetworkX库
8.2图的存储
8.2.1邻接矩阵
8.2.2邻接表
8.3图的遍历
8.3.1深度优先遍历
8.3.2广度优先遍历
8.4最小生成树
8.4.1克鲁斯卡尔(Kruskal)算法
8.4.2普里姆(Prim)算法
8.5最短路径
8.5.1迪杰斯特拉(Dijkstra)算法
8.5.2弗洛伊德(Floyd)算法
8.6实例
8.6.1旅游路线
8.6.2单词搜索
8.7习题
第9章查找
9.1查找算法
9.2基于线性表查找
……