相信每个正在学习数据结构和算法的小伙伴,最头疼的事情是通过文字学习太过于抽象,枯燥,也不能很好的理解数据结构的变化。
我在学习数据结构算法的时候,发现一个超级牛逼的宝藏网站。可以通过动画演示的方式,让我们清晰的知道每一个数据结构在数据的插入、删除、搜索的过程,对于学习、理解数据结构非常有帮助。
这个网站是美国旧金山大学计算机系编写的一套教学课件,有js、java等版本。
目前支持的数据结构和算法的可视化:
- 基本
- 堆栈:数组实现
- 堆栈:链表实现
- 队列:数组实现
- 队列:链表实现
- 列表:数组实现(在 java 版本中可用)
- 列表:链表实现(在 java 版本中可用)
- 递归
- 阶乘
- 反转字符串
- N-皇后区问题
- 索引
- 二进制和线性搜索(排序列表)
- 二叉搜索树
- AVL 树(平衡二叉搜索树)
- 红黑树
- 斯普拉树
- 开放哈希表(封闭寻址)
- 封闭式哈希表(开放式寻址)
- 封闭的哈希表,使用存储桶
- Trie(前缀树,26-ary 树)
- 板蓝根树(紧凑型三叉)
- 三元搜索树(三角形与BST的儿童)
- B 树
- B+ 树
- 排序
- 比较排序
- 气泡排序
- 选择排序
- 插入排序
- 外壳排序
- 合并排序
- 咕咕排序
- 存储桶排序
- 计数排序
- 基数排序
- 堆排序
- 比较排序
- 类似堆的数据结构
- 堆
- 二项式队列
- 斐波那契堆
- 左翼堆
- 倾斜堆
- 图形算法
- 广度优先搜索
- 深度优先搜索
- 连接的组件
- 迪克斯特拉最短路径
- Prim 的最小成本生成树
- 拓扑排序(使用凹陷数组)
- 拓扑排序(使用 DFS)
- Floyd-Warshall(所有对最短路径)
- 克鲁斯卡尔最小成本生成树算法
- 动态规划
- 计算第n个斐波那契数列
- 做出改变
- 最长公共子序列
- 几何算法
- 2D 旋转和缩放矩阵
- 2D 旋转和平移矩阵
- 2D 更改坐标系
- 3D 旋转和缩放矩阵
- 3D 更改坐标系
- 别人。。。
- 不相交集
- 霍夫曼编码(在java版本中可用)
链接地址:数据结构和算法的可视化学习网站
评论区