个人学习数据结构与算法的 C++ 实现与笔记整理,涵盖常见数据结构的原理、代码实现、复杂度分析及应用场景,适合编程初学者或高校数据结构课程配套学习。
- 核心目标:通过「原理梳理 + 代码实现 + 示例测试」的方式,系统掌握数据结构知识,提升 C++ 编程能力与算法思维。
- 适用人群:
- 高校计算机相关专业(如电子信息工程、计算机科学与技术)学生
- 自学数据结构的编程初学者
- 准备蓝桥杯、ACM 等编程竞赛的入门选手
- 代码特点:
- 遵循 C++11+ 标准,语法规范清晰
- 核心操作(增删改查、遍历、排序等)完整实现
- 代码注释详细,包含关键步骤解释
- 每个数据结构配套测试用例,可直接编译运行
DataStructure-CPP/
├── LinearList/ // 线性表
│ ├── SeqList/ // 顺序表
│ │ ├── SeqList.cpp // 完整实现代码
│ │ └── README.md // 原理笔记与使用说明
│ └── LinkedList/ // 链表
│ ├── SinglyLinkedList.cpp // 单链表
│ └── DoublyLinkedList.cpp // 双向链表
├── StackAndQueue/ // 栈与队列
│ ├── Stack/ // 栈(顺序栈+链式栈)
│ └── Queue/ // 队列(循环队列+链式队列)
├── Tree/ // 树结构
│ ├── BinaryTree/ // 二叉树(链式存储)
│ └── BST/ // 二叉搜索树
├── Graph/ // 图结构(待更新)
├── Sort/ // 常用排序算法(待更新)
└── README.md // 仓库总说明
- 编译器:支持 C++11 及以上标准(如 g++、Clang、Visual Studio)
- 版本控制:Git(可选,用于克隆仓库)
git clone https://github.com/你的用户名/你的仓库名.git
cd 你的仓库名# 进入顺序表目录
cd LinearList/SeqList
# 编译(g++示例)
g++ SeqList.cpp -o SeqList -std=c++11
# 运行可执行文件
# Windows
SeqList.exe
# Linux/Mac
./SeqList- 建议使用 IDE(如 CLion、Visual Studio Code)打开项目,直接运行调试
- 代码中包含测试用例,可根据需求修改
main函数中的测试逻辑
| 阶段 | 学习内容 | 预计耗时 |
|---|---|---|
| 第一阶段 | 线性表(顺序表、链表) | 2 周 |
| 第二阶段 | 栈与队列、递归 | 1.5 周 |
| 第三阶段 | 树结构(二叉树、BST、堆) | 2.5 周 |
| 第四阶段 | 图结构(存储、遍历、最短路径) | 2 周 |
| 第五阶段 | 排序与查找算法 | 1.5 周 |
| 第六阶段 | 综合练习(LeetCode 简单/中等题) | 持续进行 |
- 教材:
- 《数据结构(C语言版)》- 严蔚敏
- 《C++ Primer》(用于巩固 C++ 语法)
- 在线课程:
- 王道数据结构(B站)
- 慕课网《数据结构与算法》
- 刷题平台:
- LeetCode(数据结构标签题)
- 蓝桥杯官网练习题
- GitHub 仓库:我的仓库地址
- 如有问题或建议,欢迎提交 Issue 或 Pull Request
本仓库为个人学习笔记,代码与笔记仅用于学习交流,请勿用于商业用途。部分实现参考了教材与开源项目,如有侵权请联系删除。
持续更新中... 🌟 欢迎 Star 关注!