《大话数据结构》Java 版本源代码,优化无止境,掌握基础才能起飞 🚀
| 工具 |
版本 |
| JDK |
17+ |
| Maven |
3.6+ |
| IDE |
IntelliJ IDEA / Eclipse / VS Code |
git clone https://github.com/your-username/data_structure.git
cd data_structure
src/
├── main/java/
│ ├── Graph/ # 图论算法
│ ├── List/ # 链表
│ ├── Search/ # 查找算法
│ ├── Sort/ # 排序算法
│ ├── String/ # 字符串算法
│ └── Trees/ # 树结构
└── test/java/ # 单元测试
| 算法 |
文件 |
| 单链表 |
List/MyList/SingleList.java |
| 双链表 |
List/MyList/DoubleList.java |
| 类别 |
算法 |
文件 |
| 交换排序 |
冒泡排序 |
Sort/exchange/BubbleSort.java |
| 交换排序 |
快速排序 |
Sort/exchange/QuickSort.java |
| 插入排序 |
直接插入排序 |
Sort/insert/InsertSort.java |
| 插入排序 |
希尔排序 |
Sort/insert/ShellSort.java |
| 选择排序 |
简单选择排序 |
Sort/select/SelectSort.java |
| 选择排序 |
堆排序 |
Sort/select/HeapSort.java |
| 其他 |
归并排序 |
Sort/other/MergeSort.java |
| 其他 |
基数排序 |
Sort/other/RadixSort.java |
| 算法 |
文件 |
| 二分查找 |
Search/BinarySearch/BinarySearch.java |
| 哈希表 |
Search/Hash/HashList.java |
| 算法 |
文件 |
| 二叉树遍历 |
Trees/traverse/Tree.java |
| AVL 平衡树 |
Trees/AVL/AVLTree.java |
| 红黑树 |
Trees/ReadBalckTree/RBTree.java |
| 哈夫曼树 |
Trees/Huffman/HuffmanTreePriority.java |
| 线索二叉树 |
Trees/ThreadTree/threadTree.java |
| 算法 |
文件 |
说明 |
| Dijkstra |
Graph/Dijkstra/DijkstraShortPath.java |
单源最短路径 |
| Floyd |
Graph/Floyd/FolydShortPath.java |
多源最短路径 |
| SPFA |
Graph/SPFA/SPFA.java |
最短路径快速算法 |
| Prim |
Graph/PrimTree/Prim.java |
最小生成树 |
| Kruskal |
Graph/Kruskal/Kruskal.java |
最小生成树 |
| 拓扑排序 |
Graph/Topological/TopologicalSort.java |
有向无环图排序 |
| 关键路径 |
Graph/Topological/KeyPath.java |
AOE 网关键路径 |
| 算法 |
文件 |
| KMP 模式匹配 |
String/KMP.java |
MIT License
- 《大话数据结构》 - 程杰
- 《算法导论》 - Thomas H. Cormen