记录算法与数据结构学习过程中的代码实现和知识笔记。
这个仓库用于积累练习代码、常用模板和复习资料。部分源码是刷题片段或学习草稿,不一定可以直接独立运行;使用时请根据题目输入输出要求进行调整。
algorithm-road/
├── code/
│ ├── data-structures/ # 数据结构
│ ├── dynamic-programming/ # 动态规划
│ ├── graph/ # 图论
│ ├── sorting/ # 排序算法
│ └── templates/ # 竞赛模板
├── notes/ # 知识笔记
└── README.md
| 文件 | 内容 |
|---|---|
| 01BFS.cpp | 01 BFS |
| A星算法.cpp | A* 搜索 |
| Dijkstra算法模板.cpp | Dijkstra 最短路 |
| SPFA.cpp | SPFA 最短路 |
| 图的存储方式.cpp | 邻接矩阵、邻接表和链式前向星 |
| 并查集.cpp | 并查集 |
| 拓扑排序.cpp | 拓扑排序 |
| 最小生成树Kruskal方法.cpp | Kruskal 最小生成树 |
| 最小生成树Prim方法.cpp | Prim 最小生成树 |
| 文件 | 内容 |
|---|---|
| 依赖背包.cpp | 依赖背包 |
| 最大BST子树.cpp | 最大 BST 子树 |
| 文件 | 内容 |
|---|---|
| trietree1.cpp | Trie 树实现 1 |
| trietree2.cpp | Trie 树实现 2 |
| trietree3.cpp | Trie 树实现 3 |
| 文件 | 内容 |
|---|---|
| 排序汇总.cpp | 常见排序算法汇总 |
| 竞赛模板.cpp | C++ 竞赛基础模板 |
| 文件 | 内容 |
|---|---|
| 背包问题汇总.md | 01 背包、完全背包等常见模型 |
| 单调栈与队列.md | 单调栈和单调队列 |
| 二进制和位运算.md | 常用位运算技巧 |
| 高精度.md | 高精度运算模板 |
| 链表汇总.md | 链表题注意事项 |
| 前缀和.md | 前缀和及其扩展 |
| 区间DP.md | 区间 DP 总结 |
| 树形DP.md | 树形 DP 总结 |
| C++常用技巧.md | C++ 常用写法 |
以排序算法汇总为例:
New-Item -ItemType Directory -Force .\build | Out-Null
g++ -std=c++17 -Wall -Wextra -pedantic -c .\code\sorting\排序汇总.cpp -o .\build\排序汇总.o- 源码按主题放入
code/下的对应目录。 - 知识总结统一放入
notes/。 - 不提交
.exe、.o等编译产物。 - 文件名尽量清楚表达主题,避免使用含义不明确的临时名称。