CSC3280 数据结构与算法分析
目录
| 关于
英文版
目录
::
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. 一些软件工程主题
1.2. 章节引言:查找
1.3. 无序线性表中的查找分析
1.3.1. 无序线性表中的查找分析
1.3.1.1. 下界证明
1.4. 有序数组中的查找
1.4.1. 分析
1.4.1.1. 跳跃查找
1.4.1.2. 二分查找
1.4.1.3. 下界证明
1.4.1.4. 插值查找与二次二分查找
1.5. 在数组中查找
1.5.1. 在数组中查找
1.5.1.1. 顺序查找
1.5.1.2. 二分查找
1.6. 自组织表
1.6.1. 介绍
1.6.1.1. 频度计数
1.6.2. 移到最前
1.6.3. 转置
1.6.3.1. 一个例子
第 2 章
链表
¶
2.1. 章节引言:线性表
2.2. 线性表 ADT
2.2.1. 线性表 ADT
2.2.1.1. 定义 ADT
2.2.2. 线性表 ADT 编程练习
2.3. 基于数组的线性表实现
2.3.1. 基于数组的线性表实现
2.3.1.1. 插入
2.3.1.2. 插入练习
2.3.2. 追加和移除
2.3.2.1. 移除练习
2.3.3. 基于数组的线性表练习题
2.4. 链表
2.4.1. 链表
2.4.1.1. 这种表示存在的问题
2.4.1.2. 更好的解决方案
2.4.1.3. 链表的实现
2.4.2. 链表的删除
2.5. 双向链表
2.5.1. 双向链表
2.5.1.1. 插入
2.5.1.2. 追加
2.5.1.3. 删除
2.5.1.4. 前移
2.5.1.5. 指针的杂糅
2.6. 线性表实现的比较
2.6.1. 空间比较
2.6.2. 时间比较
2.6.2.1. 练习题
第 3 章
递归
¶
3.1. 递归简介
3.1.1. 引言
3.2. 编写递归函数
3.2.1. 编写递归函数
3.3. 代码补全练习
3.3.1. 引言
3.3.2. 递归编程练习:最大值
3.3.3. 递归编程练习:乘法
3.3.4. 递归编程练习:最大公约数
3.3.5. 递归编程练习:对数
3.3.6. 递归编程练习:累加和
3.3.7. 递归编程练习:奇数值求和
3.3.8. 递归编程练习:各位数字之和
3.3.9. 递归编程练习:统计字符
3.4. 编写更复杂的递归函数
3.5. 跟踪递归代码
3.5.1. 跟踪递归代码
3.5.1.1. 多米诺骨牌类比
3.5.1.2. 汉诺塔
3.6. 递归代码跟踪练习
3.6.1. 前向信息流跟踪练习
3.6.2. 后向信息流跟踪练习
3.6.3. 查找错误跟踪练习
3.6.4. 两次递归调用跟踪练习
3.6.5. 调用次数跟踪练习
3.6.6. 较难跟踪练习
第 4 章
算法分析
¶
4.1. 章节引言
4.2. 算法比较
4.2.1. 算法比较
4.2.1.1. 引言
4.2.1.2. 基本操作与输入规模
4.2.1.3. 增长率
4.2.2. 增长率排序练习
4.3. 最好、最坏与平均情况
4.3.1. 最好、最坏与平均情况
4.4. 更快的计算机,还是更快的算法?
4.4.1. 更快的计算机,还是更快的算法?
4.5. 渐近分析与上界
4.5.1. 渐近分析与上界
4.5.1.1. 上界
4.5.1.2. 简化规则
4.5.1.4. 小结
4.5.1.5. 练习题
4.6. 分析问题
4.6.1. 分析问题
4.7. 常见误解
4.7.1. 常见误解
第 5 章
栈与队列
¶
5.1. 栈
5.1.1. 栈的术语与实现
5.1.1.1. 基于数组的栈
5.1.2. 出栈
5.2. 链式栈
5.2.1. 链式栈实现
5.2.1.1. 链式栈压入
5.2.2. 链式栈出栈
5.2.2.1. 基于数组的栈与基于链表的栈比较
5.3. 队列
5.3.1. 队列术语与实现
5.3.1.1. 基于数组的队列
5.3.1.2. 环形队列
5.3.1.3. 基于数组的队列实现
5.3.2. 基于数组的队列实践
5.4. 链式队列
5.4.1. 链式队列
5.4.2. 链式队列出队
5.4.3. 基于数组的队列与链式队列的比较
5.4.3.1. 栈与队列小结题
第 6 章
树
¶
6.1. 二叉树章节简介
6.2. 二叉树
6.2.1. 定义与性质
6.2.2. 练习题
6.3. 二叉树的遍历
6.3.1. 二叉树的遍历
6.3.1.1. 前序遍历
6.3.1.2. 后序遍历
6.3.1.3. 中序遍历
6.3.1.4. 实现
6.3.2. 后序遍历练习
6.3.3. 中序遍历练习
6.3.4. 总结练习
6.4. 实现树的遍历
6.4.1. 实现树的遍历
6.4.1.1. 基本情况
6.4.1.2. 递归调用
6.4.2. 二叉树结点值加一练习
6.5. 二叉树结点的实现
6.5.1. 二叉树结点的实现
6.6. 二叉树的空间需求
6.6.1. 二叉树的空间需求
6.7. 二叉树作为递归数据结构
6.7.1. 二叉树作为递归数据结构
6.8. 满二叉树定理
6.9. 二叉搜索树
6.9.1. 二叉搜索树的定义
6.9.1.1. 二叉搜索树的查找
6.9.2. 二叉搜索树的插入
6.9.3. 二叉搜索树的删除
6.9.4. 二叉搜索树的分析
6.10. 使用 BST 实现字典
6.11. 二叉树章节小结
6.11.1. 小结问题
第 7 章
堆与哈希表
¶
7.1. 堆与优先队列
7.1.1. 堆与优先队列
7.1.2. 构建堆
7.1.3. 从堆中删除元素或更新对象的优先级
7.1.4. 优先队列
7.2. 完全二叉树的数组实现
7.2.1. 完全二叉树的数组实现
7.3. 哈希简介
7.3.1. 引言
7.4. 哈希函数原理
7.4.1. 哈希函数原理
7.5. 哈希函数示例
7.5.1. 哈希函数示例
7.5.1.1. 简单取模函数
7.5.1.2. 分箱
7.5.1.3. 平方取中法
7.5.2. 一个简单的字符串哈希函数
7.5.3. 字符串折叠
7.5.4. 哈希函数练习
7.5.5. 哈希函数复习题
7.6. 开放哈希
7.6.1. 开放哈希
7.7. 桶哈希
7.7.1. 桶哈希
7.7.2. 另一种方法
7.8. 冲突解决
7.8.1. 冲突解决
7.8.1.1. 线性探测的问题
7.9. 改进的冲突解决
7.9.1. 按步长的线性探测
7.9.2. 伪随机探测
7.9.3. 二次探测
7.9.4. 双重哈希
7.10. 闭哈希分析
7.10.1. 闭哈希分析
7.11. 哈希删除
7.11.1. 删除
7.11.2. 哈希删除总结问题
7.12. 哈希章节总结练习
7.12.1. 哈希复习
第 8 章
排序
¶
8.1. 章简介:排序
8.2. 选择排序
8.2.1. 选择排序
8.2.2. 选择排序分析
8.2.3. 指针交换
8.3. 插入排序
8.3.1. 插入排序
8.3.2. 插入排序分析
8.4. 冒泡排序
8.4.1. 冒泡排序
8.4.2. 冒泡排序分析
8.5. 交换排序的成本
8.5.1. 交换排序的成本
8.5.2. 分析
8.6. 归并排序概念
8.6.1. 归并排序概念
8.6.2. 归并排序练习
8.7. 实现归并排序
8.7.1. 实现归并排序
8.8. 快速排序
8.8.1. 引言
8.8.2. 划分
8.8.3. 综合应用
8.8.4. 快速排序分析
8.9. 堆排序
8.9.1. 堆排序
8.9.2. 堆排序熟练度练习
8.9.3. 堆排序分析
8.10. 排序算法的实验比较
8.10.1. 排序算法的实验比较
第 9 章
附录
¶
9.1. 术语表
9.2. 参考文献
索引
搜索页面
隐私 |
| 许可协议
目录
::
0.
1.
如何使用本系统
»
小结*:
操作系统*:
Windows
Mac OS
Linux
iOS
Android
Other
浏览器*:
Chrome
Safari
Internet Explorer
Opera
Other
描述*:
附加截图(可选):