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