文档索引页
README
几个经典的算法面试题
1
2
准备
前言_内容介绍和授课方式
起步_数据结构和算法的关系
起步_编程中遇到的问题
入门_线性结构和非线性结构
稀疏数组
应用场景
转换思路分析
代码实现
队列
介绍
数组模拟队列
思路分析
代码实现
数组模拟环形队列
思路分析图
实现
链表
单链表
介绍和内存布局
代码
创建和遍历的分析实现
按顺序插入节点
节点的修改
节点的删除和小结
新浪面试题
腾讯面试题
百度面试题
双向链表
增删改查分析图解
增删改查代码实现
功能测试和小结
环形链表
环形链表_介绍和约瑟夫问题
环形链表_约瑟夫问题分析图解和实现
栈
应用场景和介绍
思路分析和代码实现
功能测试和小结
栈实现综合计算器
思路分析
代码实现
代码实现
表达式
前缀中缀后缀表达式规则
逆波兰计算器分析和实现
中缀转后缀表达式思路分析
中缀转后缀表达式代码实现
完整版逆波兰计算器和小结
递归
递归应用场景和调用机制
递归能解决的问题和规则
迷宫回溯问题分析和实现
八皇后问题分析和实现
频度和复杂度
排序算法介绍和分类
时间频度介绍和特点
时间复杂度计算和举例说明
平均和最坏时间复杂度介绍
排序
冒泡排序
算法思路图解
算法代码实现
算法优化
算法总结
选择排序
思路图解
代码实现
速度测试
总结
插入排序
思路图解
代码实现
速度测试
总结
希尔排序
算法思路图解
交换式_算法实现
移位式_算法实现
总结
快速排序
思路图解
代码实现
速度测试
总结
归并排序
算法思路图解
算法代码实现
算法速度测试
总结
基数排序
思路图解
代码实现
注意事项
总结
计数排序
排序算法时间复杂度比较
查找
线性查找分析和实现
二分查找算法
思路图解
代码实现
功能完善
插值查找算法
工作原理
代码实现
斐波那契查找
算法原理
代码实现
算法小结
哈希表
哈希表的介绍和内存布局
哈希表实现思路图解
哈希表代码实现
尚硅谷数组链表_树存储方式分析
二叉树
二叉树的概念和常用术语
前序中序后序
遍历二叉树图解
遍历代码实现
查找思路图解
查找代码实现
二叉树删除结点思路图解
二叉树删除结点代码实现
顺序存储二叉树思路图解
顺序存储二叉树代码实现
线索化二叉树的介绍
线索化二叉树思路图解
线索化二叉树代码实现1
遍历线索化二叉树实现
堆
堆排序
大顶堆和小顶堆图解说明
堆排序的思路图解
堆排序的代码实现1
堆排序的速度测试和小结
赫夫曼树
的基本介绍
创建步骤图解
创建代码实现
变长编码的举例说明
原理图解
压缩解压
压缩
创建赫夫曼树思路
创建赫夫曼树实现
生成赫夫曼编码表
赫夫曼编码字节数组
赫夫曼字节数组封装
解压
数据解压-字节转二进制字符串
数据解压-赫夫曼解码
使用赫夫曼编码压缩文件
使用赫夫曼编码解压文件
赫夫曼编码注意事项
树
BST
二叉排序树(BST)的介绍
二叉排序树(BST)创建和遍历
二叉排序树删除结点思路图解
二叉排序树删除叶子结点(1)
BST删除有一颗子树的结点
BST删除有二颗子树的结点
BST删除结点的注意事项
AVL
平衡二叉树(AVL树)介绍
AVL树左旋转思路图解
AVL树高度求解
AVL树左旋转代码实现
AVL树右旋转图解和实现
AVL树双旋转图解和实现
平衡二叉树(AVL树)小结
多叉树原理图解
2-3树原理图解
B树和B加树原理图解
B星树和多路查找树小结
图
图的基本介绍和存储形式
图的创建图解和代码实现
图的深度优先DFS
算法图解
代码实现
图的广度优先BFS
算法图解
代码实现
DFS和BFS比较及图小结
算法
二分查找非递归算法分析实现
分治算法
分治算法的设计模式
分治算法解决汉诺塔问题
动态规划算法
动态规划算法基本介绍
动态规划算法解决背包问题
1
2
3
暴力匹配算法解决字串匹配问题
KMP算法
KMP算法解决字串匹配思路图解
KMP算法解决字串匹配代码实现
动态规划算法和KMP算法小结
贪心算法
贪心算法的基本介绍
贪心算法解决集合覆盖
思路图解
代码实现
注意事项
Prim
普利姆算法(Prim)和MST介绍
Prim算法解决修路问题
思路图解
生成图
代码实现
Kruskal
克鲁斯卡尔(Kruskal)算法图解
Kruskal算法解决公交问题
Dijkstra
迪杰斯特拉(Dijkstra)算法基本介绍
Dijkstra算法思路图解
Dijkstra算法解决最短路径问题
Floyd
弗洛伊德(Floyd)算法基本介绍
弗洛伊德(Floyd)算法思路图解
Floyd算法解决最短路径问题
1
2
骑士周游问题
问题和游戏说明
问题思路图解
回溯算法代码实现
回溯算法用贪心算法优化
课件
幻灯片课件
PDF课件
本书使用 GitBook 发布
二叉排序树(BST)的介绍
results matching "
"
No results matching "
"