教程目录:

┃┣━学习算法思想,修炼编程内功

┃┃┣━第10章 结束语

┃┃┣━第1章 当我们谈论算法的时候,我们在谈论什么?

┃┃┣━第2章 排序基础

┃┃┣━第3章 高级排序算法

┃┃┣━第4章 堆和堆排序

┃┃┣━第5章 二分搜索树

┃┃┣━第6章 并查集

┃┃┣━第7章 图的基础

┃┃┣━第8章 最小生成树

┃┃┣━第9章 最短路径

┃┃┣━算法和数据结构–目录.txt

┃┃┣━讲师项目源代码.zip

┃┣━玩转数据结构 从入门到进阶

┃┃┣━源码

┃┃┣━第10章 Trie

┃┃┃┣━10-1 什么是Trie字典树

┃┃┃┣━10-2 Trie字典树基础

┃┃┃┣━10-3 Trie字典树的查询

┃┃┃┣━10-4 Trie字典树的前缀查询

┃┃┃┣━10-5 Trie字典树和简单的模式匹配

┃┃┃┣━10-6 Trie字典树和字符串映射

┃┃┃┣━10-7 更多和Trie字典树相关的话题

┃┃┣━第11章 并查集

┃┃┃┣━11-1 什么是并查集

┃┃┃┣━11-4 基于size的优化

┃┃┃┣━11-5 基于rank的优化

┃┃┃┣━11-6 路径压缩

┃┃┃┣━11-7 更多和并查集相关的话题

┃┃┣━第12章 AVL

┃┃┃┣━12-1 平衡树和AVL

┃┃┃┣━12-2 计算节点的高度和平衡因子

┃┃┃┣━12-3 检查二分搜索树性质和平衡性

┃┃┃┣━12-4 旋转操作的基本原理

┃┃┃┣━12-5 左旋转和右旋转的实现

┃┃┃┣━12-6 LR 和 RL

┃┃┃┣━12-7 从AVL树中删除元素

┃┃┃┣━12-8 基于AVL树的集合和映射

┃┃┣━第13章 红黑树

┃┃┃┣━13-1 红黑树与2-3树

┃┃┃┣━13-2 树的绝对平衡性

┃┃┃┣━13-3 颜色翻转和右旋转

┃┃┃┣━13-4 13-5 红黑树的基本性质和复杂度分析 红黑树与2-3树的等价性

┃┃┃┣━13-6 保持根节点为黑色和左旋转

┃┃┃┣━13-7 红黑树中添加新元素

┃┃┃┣━13-8 红黑树的性能测试

┃┃┃┣━13-9 更多和红黑树相关的话题

┃┃┃┣━14-4 链地址法 Seperate Chaining

┃┃┃┣━14-7 哈希表更复杂的动态空间处理方法

┃┃┣━第14章 哈希表

┃┃┃┣━14-1 哈希表基础

┃┃┃┣━14-2 哈希函数的设计

┃┃┃┣━14-3 JAVA中的 hashCode 方法

┃┃┃┣━14-4 链地址法 Seperate Chaining

┃┃┃┣━14-5 实现属于我们自己的哈系表

┃┃┃┣━14-6 哈希表的动态空间处理与复杂度分析。

┃┃┃┣━14-7 哈希表更复杂的动态空间处理方法

┃┃┃┣━14-8 更多哈希冲突的处理方法

┃┃┣━第15章 结尾语

┃┃┃┣━15-1 更广阔的数据结构的世界,大家加油!


┃┃┣━第1章欢迎学习《玩转数据结构》

┃┃┃┣━1-1 欢迎学习《玩转数据结构》

┃┃┃┣━1-2 学习数据结构(和算法)到底有没有用?

┃┃┃┣━1-3 关于课程学习的更多注意事项

┃┃┃┣━1-4课程编程环境搭建

┃┃┣━第2章 不要小瞧数组

┃┃┃┣━2-1 使用Java中的数组

┃┃┃┣━2-2 二次封装属于我们自己的数组

┃┃┃┣━2-3 向数组中添加元素

┃┃┃┣━2-4 数组中查询元素和修改元素

┃┃┃┣━2-5 包含,搜索和删除

┃┃┃┣━2-6 使用泛型

┃┃┃┣━2-7 动态数组

┃┃┃┣━2-8 简单的复杂度分析

┃┃┃┣━2-9 均摊复杂度和防止复杂度的震荡

┃┃┣━第3章 栈和队列

┃┃┃┣━3-1 栈和栈的应用:撤销操作和系统栈

┃┃┃┣━3-2 栈的基本实现

┃┃┃┣━3-3 栈的另一个应用:括号匹配

┃┃┃┣━3-4 关于Leetcode的更多说明

┃┃┃┣━3-5 数组队列

┃┃┃┣━3-6 循环队列

┃┃┃┣━3-7 循环队列的实现

┃┃┃┣━3-8 数组队列和循环队列的比较

┃┃┣━第4章最基础的动态数据结构:链表

┃┃┃┣━4-1 什么是链表

┃┃┃┣━4-2 在链表中添加元素

┃┃┃┣━4-3 使用链表的虚拟头结点

┃┃┃┣━4-4 链表的遍历,查询和修改

┃┃┃┣━4-5 从链表中删除元素

┃┃┃┣━4-6 使用链表实现栈

┃┃┃┣━4-7 带有尾指针的链表:使用链表实现队列

┃┃┣━第5章链表和递归

┃┃┃┣━5-1 Leetcode中和链表相关的问题

┃┃┃┣━5-2 测试自己的Leetcode链表代码

┃┃┃┣━5-3 递归基础与递归的宏观语意

┃┃┃┣━5-4 链表的天然递归结构性质

┃┃┃┣━5-5 递归运行的机制:递归的微观解读

┃┃┃┣━5-6 递归算法的调试

┃┃┃┣━5-7 更多和链表相关的问题

┃┃┣━第6章 二分搜索树

┃┃┃┣━6-1 为什么要研究树结构

┃┃┃┣━6-10 二分搜索树的层序遍历

┃┃┃┣━6-11 删除二分搜索树的最大元素和最小元素

┃┃┃┣━6-12 删除二分搜索树的任意元素

┃┃┃┣━6-13 更多二分搜索树相关话题

┃┃┃┣━6-2 二分搜索树基础

┃┃┃┣━6-3 向二分搜索树中添加元素

┃┃┃┣━6-4 改进添加操作:深入理解递归终止条件

┃┃┃┣━6-5 二分搜索树的查询操作

┃┃┃┣━6-6 二分搜索树的前序遍历

┃┃┃┣━6-7 二分搜索树的中序遍历和后序遍历

┃┃┃┣━6-8 深入理解二分搜索树的前中后序遍历

┃┃┃┣━6-9 二分搜索树前序遍历的非递归实现

┃┃┣━第7章 集合和映射

┃┃┃┣━7-1 集合基础和基于二分搜索树的集合实现

┃┃┃┣━7-2 基于链表的集合实现

┃┃┃┣━7-3 集合类的复杂度分析

┃┃┃┣━7-4 _Leetcode中的集合问题和更多集合相关问题

┃┃┃┣━7-5 映射基础

┃┃┃┣━7-6 基于链表的映射实现

┃┃┃┣━7-7 基于二分搜索树的映射实现

┃┃┃┣━7-8 映射的复杂度分析和更多映射相关问题

┃┃┃┣━7-9 Leetcode上更多集合和映射的问题

┃┃┣━第8章 优先队列和堆

┃┃┃┣━8-1 什么是优先队列

┃┃┃┣━8-2 堆的基础表示

┃┃┃┣━8-3 向堆中添加元素和Sift Up

┃┃┃┣━8-4 从堆中取出元素和Sift Down

┃┃┃┣━8-5 Heapify 和 Replace

┃┃┃┣━8-6 基于堆的优先队列

┃┃┃┣━8-7 Leetcode上优先队列相关问题

┃┃┃┣━8-8 Java中的PriorityQueue

┃┃┃┣━8-9 和堆相关的更多话题和广义队列

┃┃┣━第9章 线段树

┃┃┃┣━9-1 什么是线段树

┃┃┃┣━9-2 线段树基础表示

┃┃┃┣━9-3 创建线段树

┃┃┃┣━9-4 线段树中的区间查询

┃┃┃┣━9-5 Leetcode上线段树相关的问题

┃┃┃┣━9-6 线段树中的更新操作

┃┃┃┣━9-7 更多线段树相关的话题

┃┣━玩转算法面试 从真题到思维全面提升算法思维

┃┃┣━第10章 贪心算法

┃┃┣━第11章 课程结语

┃┃┣━第1章 算法面试到底是什么鬼

┃┃┣━第2章 面试中的复杂度分析

┃┃┣━第3章 数组中的问题其实最常见

┃┃┣━第4章 查找表相关问题

┃┃┣━第5章 在链表中穿针引线

┃┃┣━第6章 栈,队列,优先队列

┃┃┣━第7章 二叉树和递归

┃┃┣━第8章 递归和回溯法

┃┃┣━第9章 动态规划基础


┃┣━看得见的算法 7个经典应用诠释算法精髓

┃┃┣━第10章 看得见的算法,下季再见!

┃┃┃┣━10-1 看得见的算法,下一季再见!

┃┃┣━第1章 欢迎来到看得见的算法

┃┃┃┣━1-1 欢迎来到看得见的算法

┃┃┃┣━1-2 学习这个课程将完成什么项目?

┃┃┃┣━1-3 关于本课程的编程环境

┃┃┃┣━1-4更多学习本课程的注意事项

┃┃┣━第2章 要想看得见,先要搞定GUI编程

┃┃┃┣━2-1 使用JFrame

┃┃┃┣━2-10 鼠标事件

┃┃┃┣━2-11 课程所使用的GUI编程模板

┃┃┃┣━2-2 创建属于自己的第一个JFrame子类

┃┃┃┣━2-3 设置画布与图形绘制基础

┃┃┃┣━2-4 使用Graphics2D

┃┃┃┣━2-5整理绘制工具类

┃┃┃┣━2-6 高级绘制特性:抗锯齿和双缓存

┃┃┃┣━2-7 动画基础

┃┃┃┣━2-8 算法可视化中的MVC

┃┃┃┣━2-9 键盘事件

┃┃┣━第3章 概率模拟算法

┃┃┃┣━3-1 一个有意思的分钱模拟问题

┃┃┃┣━3-2 深入随机分钱问题

┃┃┃┣━3-3 蒙特卡洛算法

┃┃┃┣━3-4使用蒙特卡洛算法求PI值

┃┃┃┣━3-5不需要可视化的蒙特卡洛模拟

┃┃┃┣━3-6 三门问题

┃┃┃┣━3-7 你一定能中奖吗?

┃┃┣━第4章 排序算法可视化

┃┃┃┣━4-1 选择排序算法可视化.

┃┃┃┣━4-10 三路快速排序算法可视化

┃┃┃┣━4-11 堆排序算法可视化

┃┃┃┣━4-2 为可视化添加更多效果

┃┃┃┣━4-3 插入排序可视化.

┃┃┃┣━4-4 在近乎有序的数据上测试插入排序算法.

┃┃┃┣━4-5通过归并排序算法深入理解递归

┃┃┃┣━4-6 归并排序算法可视化.

┃┃┃┣━4-7 快速排序算法可视化

┃┃┃┣━4-8 在快速排序中随机选取标定点

┃┃┃┣━4-9 双路快速排序算法可视化

┃┃┣━第5章 走迷宫

┃┃┃┣━5-1 处理迷宫文件

┃┃┃┣━5-2 迷宫可视化

┃┃┃┣━5-3 迷宫问题和图的遍历

┃┃┃┣━5-4 深度优先递归走迷宫

┃┃┃┣━5-5 迷宫问题与回溯法

┃┃┃┣━5-6 非递归深度优先走迷宫

┃┃┃┣━5-7非递归深度优先走迷宫求解最终路径

┃┃┃┣━5-8 广度优先走迷宫问题

┃┃┃┣━5-9 深度优先遍历和广度优先遍历的内在联系

┃┃┣━第6章 随机迷宫生成

┃┃┃┣━6-1 什么是迷宫

┃┃┃┣━6-2 生成迷宫基础

┃┃┃┣━6-3 深度优先遍历生成迷宫

┃┃┃┣━6-4非递归深度优先遍历生成迷宫

┃┃┃┣━6-5广度优先遍历生成迷宫

┃┃┃┣━6-6 随机队列生成迷宫

┃┃┃┣━6-7迷宫生成的迷雾效果

┃┃┃┣━6-8 生成随机性更强的迷宫

┃┃┃┣━6-9 更多迷宫问题

┃┃┣━第7章 自己做一个扫雷游戏

┃┃┃┣━7-1扫雷是什么鬼?扫雷里包含什么算法?

┃┃┃┣━7-2扫雷代码基础

┃┃┃┣━7-3随机生成雷区

┃┃┃┣━7-4 验证随机生成雷区算法的随机性

┃┃┃┣━7-5Fisher-Yates洗牌算法的应用

┃┃┃┣━7-6 为扫雷程序加入交互

┃┃┃┣━7-7 扫雷与floodfill算法

┃┃┃┣━7-8 更多扫雷相关和floodfill算法的应用

┃┃┣━第8章 益智游戏自动生成解 – Move the Box

┃┃┃┣━8-1 玩一玩Move the Box

┃┃┃┣━8-2 求解Move the Box的数据架构

┃┃┃┣━8-3 求解Move the Box的渲染

┃┃┃┣━8-4 搜索框架

┃┃┃┣━8-5 处理箱子掉落过程

┃┃┃┣━8-6 处理箱子消除过程

┃┃┃┣━8-7 显示问题的解

┃┃┃┣━8-8 更多搜索优化思路

┃┃┃┣━8-9 更多人工智能相关

┃┃┣━第9章 分形图的绘制:计算机生成艺术

┃┃┃┣━9-1 分形到底是什么鬼

┃┃┃┣━9-2 递归绘制基础-

┃┃┃┣━9-3 Vicsek 分形图的绘制

┃┃┃┣━9-4 为分形绘制添加交互

┃┃┃┣━9-5 Sierpinski 分形绘制

┃┃┃┣━9-6 Sierpinski 三角形

┃┃┃┣━9-7 编写Koch雪花分形

┃┃┃┣━9-8 利用分形绘制树