TDDI16 数据结构与算法(林雪平大学)
目录
| 关于
英文版
目录
::
0.
1.
如何使用本系统
»
第 0 章
前言
¶
0.1. 如何使用本系统
第 1 章
引言
¶
1.1. 数据结构与算法
1.1.1. 数据结构与算法
1.1.1.1. 引言
1.1.1.2. 数据结构的哲学
1.1.1.3. 选择数据结构
1.1.1.4. 引言小结题
1.1.2. 一些软件工程主题
第 2 章
数学基础
¶
2.1. 章节导论
2.2. 集合与关系
2.2.1. 集合记号
2.2.1.1. 关系
2.2.2. 等价关系
2.2.3. 偏序
2.3. 杂项数学记号
2.4. 对数
2.4.1. 对数
2.5. 求和引论
2.5.1. 求和
2.6. 递推关系引论
2.6.1. 递推关系
2.7. 估算引论
2.8. 章节小结题
2.8.1. 章节小结题
第 3 章
算法分析
¶
3.1. 章节引言
3.2. 问题、算法与程序
3.2.1. 问题、算法与程序
3.2.1.1. 问题
3.2.1.2. 算法
3.2.1.3. 程序
3.2.1.4. 小结
3.2.1.5. 小结题
3.3. 算法比较
3.3.1. 算法比较
3.3.1.1. 引言
3.3.1.2. 基本操作与输入规模
3.3.1.3. 增长率
3.3.2. 增长率排序练习
3.4. 最好、最坏与平均情况
3.4.1. 最好、最坏与平均情况
3.5. 更快的计算机,还是更快的算法?
3.5.1. 更快的计算机,还是更快的算法?
3.6. 渐近分析与上界
3.6.1. 渐近分析与上界
3.6.1.1. 上界
3.6.1.2. 简化规则
3.6.1.4. 小结
3.6.1.5. 练习题
3.7. 下界与
\(\Theta\)
记法
3.7.1. 下界与 Theta 记法
3.7.1.1. 下界
3.7.1.2. Theta 记法
3.7.1.3. 函数分类
3.7.1.4. 小结练习
3.8. 计算程序运行时间
3.8.1. 计算程序运行时间
3.8.1.1. 案例研究:两种查找算法
3.8.1.2. 二分查找练习
3.8.1.3. 分析二分查找
3.8.2. 摘要练习
3.9. 分析问题
3.9.1. 分析问题
3.10. 常见误解
3.10.1. 常见误解
3.11. 摊还分析
3.12. 多个参数
3.13. 空间界
3.14. 代码调优与实验分析
3.14.1. 代码调优与实验分析
3.14.1.1. 实验分析
3.15. 算法分析总结练习
3.15.1. 总结练习:CS2
3.16. 算法分析总结练习
3.16.1. 总结练习:CS3
第 4 章
线性结构
¶
4.1. 抽象数据类型
4.1.1. 抽象数据类型
4.1.2. 概念图练习
4.1.3. 复习题
4.2. 章节引言:线性表
4.3. 线性表 ADT
4.3.1. 线性表 ADT
4.3.1.1. 定义 ADT
4.3.2. 线性表 ADT 编程练习
4.4. 基于数组的线性表实现
4.4.1. 基于数组的线性表实现
4.4.1.1. 插入
4.4.1.2. 插入练习
4.4.2. 追加和移除
4.4.2.1. 移除练习
4.4.3. 基于数组的线性表练习题
4.5. 链表
4.5.1. 链表
4.5.1.1. 这种表示存在的问题
4.5.1.2. 更好的解决方案
4.5.1.3. 链表的实现
4.5.2. 链表的删除
4.6. 线性表实现的比较
4.6.1. 空间比较
4.6.2. 时间比较
4.6.2.1. 练习题
4.7. 双向链表
4.7.1. 双向链表
4.7.1.1. 插入
4.7.1.2. 追加
4.7.1.3. 删除
4.7.1.4. 前移
4.7.1.5. 指针的杂糅
4.8. 线性表元素的实现
4.8.1. 线性表元素的实现
4.8.1.1. 同质性
4.8.1.2. 元素的删除
4.8.1.3. 练习题
4.9. 栈
4.9.1. 栈的术语与实现
4.9.1.1. 基于数组的栈
4.9.2. 出栈
4.10. 链式栈
4.10.1. 链式栈实现
4.10.1.1. 链式栈压入
4.10.2. 链式栈出栈
4.10.2.1. 基于数组的栈与基于链表的栈比较
4.11. 实现递归
4.12. 队列
4.12.1. 队列术语与实现
4.12.1.1. 基于数组的队列
4.12.1.2. 环形队列
4.12.1.3. 基于数组的队列实现
4.12.2. 基于数组的队列实践
4.13. 链式队列
4.13.1. 链式队列
4.13.2. 链式队列出队
4.13.3. 基于数组的队列与链式队列的比较
4.13.3.1. 栈与队列小结题
4.14. 线性结构小结练习
4.14.1. 练习题
4.14.2. 章节复习题
第 5 章
设计
¶
5.1. 线性表 ADT 的替代设计
5.2. 记录的比较
5.2.1. 记录的比较
5.3. 字典 ADT
5.3.1. 字典 ADT
第 6 章
二叉树
¶
6.1. 二叉树章节简介
6.2. 二叉树
6.2.1. 定义与性质
6.2.2. 练习题
6.3. 二叉树作为递归数据结构
6.3.1. 二叉树作为递归数据结构
6.4. 满二叉树定理
6.5. 二叉树的遍历
6.5.1. 二叉树的遍历
6.5.1.1. 前序遍历
6.5.1.2. 后序遍历
6.5.1.3. 中序遍历
6.5.1.4. 实现
6.5.2. 后序遍历练习
6.5.3. 中序遍历练习
6.5.4. 总结练习
6.6. 实现树的遍历
6.6.1. 实现树的遍历
6.6.1.1. 基本情况
6.6.1.2. 递归调用
6.6.2. 二叉树结点值加一练习
6.7. 二叉树结点的实现
6.7.1. 二叉树结点的实现
6.8. 基于组合模式的表达式树
6.8.1. 基于组合模式的表达式树
6.9. 二叉树的空间需求
6.9.1. 二叉树的空间需求
6.10. 二叉搜索树
6.10.1. 二叉搜索树的定义
6.10.1.1. 二叉搜索树的查找
6.10.2. 二叉搜索树的插入
6.10.3. 二叉搜索树的删除
6.10.4. 二叉搜索树的分析
6.11. 使用 BST 实现字典
6.12. 完全二叉树的数组实现
6.12.1. 完全二叉树的数组实现
6.13. 堆与优先队列
6.13.1. 堆与优先队列
6.13.2. 构建堆
6.13.3. 从堆中删除元素或更新对象的优先级
6.13.4. 优先队列
6.14. 哈夫曼编码树
6.14.1. 哈夫曼编码树
6.14.1.1. 构建哈夫曼编码树
6.14.1.2. 解码
6.14.1.3. 哈夫曼编码的效率如何?
6.15. 树与字典树
6.15.1. 树与字典树
6.16. 哈夫曼编码最优性的证明
6.16.1. 哈夫曼编码最优性的证明
6.17. 二叉树章节小结
6.17.1. 小结问题
第 7 章
平衡树
¶
7.1. 平衡树
7.2. AVL 树
7.3. 伸展树
第 8 章
一般树
¶
8.1. 一般树
8.1.1. 一般树
8.1.1.1. 一般树的定义与术语
8.1.1.2. 一般树结点的 ADT
8.1.1.3. 一般树的遍历
8.2. 并查集与父指针实现
8.2.1. 并查集问题
8.2.1.1. 父指针树
8.2.1.2. 等价类
8.2.1.3. 加权合并
8.2.1.4. 路径压缩
8.3. 树的顺序表示
8.3.1. 树的顺序表示
8.3.2. 另一种顺序表示
8.3.3. 位向量表示
8.3.4. 一般树的顺序表示
第 9 章
索引
¶
9.1. 索引章引论
9.2. 线性索引
9.2.1. 线性索引
9.3. 基于树的索引
9.3.1. 基于树的索引
9.4. 2-3 树
9.4.1. 2-3 树
9.5. B 树
9.5.1. B 树
9.5.1.1. B+ 树
9.5.1.2. B 树分析
9.6. 索引章小结练习
9.6.1. 索引小结
第 10 章
哈希
¶
10.1. 哈希简介
10.1.1. 引言
10.2. 哈希函数原理
10.2.1. 哈希函数原理
10.3. 哈希函数示例
10.3.1. 哈希函数示例
10.3.1.1. 简单取模函数
10.3.1.2. 分箱
10.3.1.3. 平方取中法
10.3.2. 一个简单的字符串哈希函数
10.3.3. 字符串折叠
10.3.4. 哈希函数练习
10.3.5. 哈希函数复习题
10.4. 开放哈希
10.4.1. 开放哈希
10.5. 桶哈希
10.5.1. 桶哈希
10.5.2. 另一种方法
10.6. 冲突解决
10.6.1. 冲突解决
10.6.1.1. 线性探测的问题
10.7. 改进的冲突解决
10.7.1. 按步长的线性探测
10.7.2. 伪随机探测
10.7.3. 二次探测
10.7.4. 双重哈希
10.8. 闭哈希分析
10.8.1. 闭哈希分析
10.9. 哈希删除
10.9.1. 删除
10.9.2. 哈希删除总结问题
10.10. 哈希章节总结练习
10.10.1. 哈希复习
第 11 章
图
¶
11.1. 章引论:图
11.1.1. 图的术语与实现
11.1.1.1. 图的表示法
11.1.2. 图术语问题
11.2. 图的实现
11.3. 图遍历
11.3.1. 图遍历
11.3.1.1. 深度优先搜索
11.3.2. 广度优先搜索
11.4. 拓扑排序
11.4.1. 拓扑排序
11.4.1.1. 基于深度优先的解法
11.4.1.2. 基于队列的解法
11.5. 最短路径问题
11.5.1. 最短路径问题
11.5.1.1. 单源最短路径
11.6. 最小生成树
11.6.1. 最小生成树
11.6.1.1. Prim 算法
11.6.1.2. Prim 算法的另一种实现
11.7. Kruskal 算法
11.7.1. Kruskal 算法
11.8. 全源最短路径
第 12 章
排序
¶
12.1. 章简介:排序
12.2. 排序术语与记号
12.2.1. 排序术语与记号
12.3. 插入排序
12.3.1. 插入排序
12.3.2. 插入排序分析
12.4. 冒泡排序
12.4.1. 冒泡排序
12.4.2. 冒泡排序分析
12.5. 选择排序
12.5.1. 选择排序
12.5.2. 选择排序分析
12.5.3. 指针交换
12.6. 交换排序的成本
12.6.1. 交换排序的成本
12.6.2. 分析
12.7. 用代码调优优化排序算法
12.7.1. 简单排序算法的代码调优
12.8. 希尔排序
12.8.1. 希尔排序
12.8.2. 融会贯通
12.8.3. 希尔排序练习
12.8.4. 优化希尔排序
12.8.5. 希尔排序小结问题
12.9. 归并排序概念
12.9.1. 归并排序概念
12.9.2. 归并排序练习
12.10. 实现归并排序
12.10.1. 实现归并排序
12.11. 快速排序
12.11.1. 引言
12.11.2. 划分
12.11.3. 综合应用
12.11.4. 快速排序分析
12.12. 堆排序
12.12.1. 堆排序
12.12.2. 堆排序熟练度练习
12.12.3. 堆排序分析
12.13. 箱排序
12.13.1. 箱排序
12.14. 基数排序
12.14.1. 基数排序
12.14.2. 基于数组的基数排序
12.14.2.1. 基数排序分析
12.15. 排序算法的实验比较
12.15.1. 排序算法的实验比较
12.16. 排序的下界
12.16.1. 排序的下界
12.17. 排序小结练习
12.17.1. 排序小结练习
第 13 章
查找
¶
13.1. 章节引言:查找
13.2. 在数组中查找
13.2.1. 在数组中查找
13.2.1.1. 顺序查找
13.2.1.2. 二分查找
13.3. 无序线性表中的查找分析
13.3.1. 无序线性表中的查找分析
13.3.1.1. 下界证明
13.4. 有序数组中的查找
13.4.1. 分析
13.4.1.1. 跳跃查找
13.4.1.2. 二分查找
13.4.1.3. 下界证明
13.4.1.4. 插值查找与二次二分查找
13.5. 自组织表
13.5.1. 介绍
13.5.1.1. 频度计数
13.5.2. 移到最前
13.5.3. 转置
13.5.3.1. 一个例子
第 14 章
附加专题
¶
14.1. 动态规划
14.1.1. 动态规划
14.1.2. 计算斐波那契数
14.1.3. 背包问题
14.1.4. 链式矩阵乘法
14.2. 稀疏矩阵
14.3. 求最大值
14.3.1. 求最大值
14.3.2. 鸣谢
14.4. 对抗性下界证明
14.4.1. 鸣谢
14.5. 状态空间下界证明
14.5.1. 鸣谢
14.6. 找出第
\(i\)
大的元素
14.6.1. 鸣谢
14.7. 最优排序
第 15 章
附录
¶
15.1. 术语表
15.2. 参考文献
15.3. 聚焦:卡尔·弗里德里希·高斯
15.3.1. 聚焦:卡尔·弗里德里希·高斯
15.4. 聚焦:弗朗西斯·培根
15.4.1. 聚焦:弗朗西斯·培根
索引
搜索页面
隐私 |
| 许可协议
目录
::
0.
1.
如何使用本系统
»
小结*:
操作系统*:
Windows
Mac OS
Linux
iOS
Android
Other
浏览器*:
Chrome
Safari
Internet Explorer
Opera
Other
描述*:
附加截图(可选):