数据结构和算法必知必会的 50 个代码实现(Java)
- https://github.com/andavid/ds-algo-java
- https://github.com/wangzheng0822/algo
- https://github.com/kkzfl22/datastruct
- 实现一个 支持动态扩容的数组
- 实现一个 大小固定的有序数组,支持动态增删改操作
- 实现 两个有序数组合并为一个有序数组
- 实现 单链表、循环链表、双向链表,支持增删操作
- 实现 单链表反转
- 实现 两个有序的链表合并为一个有序链表
- 实现 求链表的中间结点
- 实现 链表中环的检测
- 实现 删除链表倒数第 n 个结点
- 实现一个 跳表
- 实现一个 基于链表法解决冲突问题的散列表
- 实现一个 LRU缓存淘汰算法
- 一致性哈希算法
- 实现一个 二叉查找树,并且支持插入、删除、查找操作
- 实现查找 二叉查找树中某个节点的后继、前驱节点
- 实现 二叉树前、中、后序以及按层遍历
- 实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法
- 实现 图的深度优先搜索、广度优先搜索
- 实现Dijkstra算法、A*算法
- 实现拓扑排序的Kahn算法、DFS算法
- 实现一个字符集,只包含a~z这26个英文字母的 Trie 树
- 实现 朴素的字符串匹配算法
- 实现 RK 字符串匹配算法
- 实现 KMP 字符串匹配算法
- 利用分治算法求一组数据的 逆序对个数
- 0-1背包问题
- 最小路径和
- 编程实现莱文斯坦最短编辑距离
- 编程实现查找两个字符串的最长公共子序列
- 编程实现一个数据序列的最长递增子序列