《大话数据结构》Java 版本源代码,优化无止境,掌握基础才能起飞 🚀
| 工具 | 版本 |
|---|---|
| JDK | 17+ |
| Maven | 3.6+ |
| IDE | IntelliJ IDEA / Eclipse / VS Code |
git clone https://github.com/your-username/data_structure.git
cd data_structuremvn clean compilemvn testmvn packagesrc/
├── 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