cpp-mega-notes 是一套面向 C++ 程序设计、数据结构、现代 C++、算法训练 的超级融合讲义系统,目标是把上海交通大学课程体系与 Stanford CS106L / CS106B 的高质量教学资源整合到同一个知识框架中。
整个项目强调四件事:
- 知识对齐:把不同课程中重叠但表达方式不同的内容整合到统一脉络里。
- 实现驱动:每个核心数据结构与算法都配有独立的 C++ 实现骨架。
- 可视化学习:通过 HTML 可视化页面辅助理解抽象结构与算法过程。
- 刷题迁移:通过 LeetCode 分类训练,把课堂知识迁移到问题求解能力上。
- 教材:《C++程序设计:思想与方法 慕课版 第4版》
- 侧重点:语言基础、程序设计方法、函数、数组、指针、类与对象、模板与 STL。
- 在本项目中的作用:构建 C++ 语言与抽象建模能力的基础。
- 教材:《数据结构思想与实现(第2版)》
- 侧重点:线性表、栈、队列、串、树、图、查找、排序及典型实现。
- 在本项目中的作用:建立系统化的数据结构与算法认知框架。
- 参考资料:
CS106L-master/ - 侧重点:现代 C++、流、容器、迭代器、模板、const、运算符重载、特殊成员函数、move、RAII。
- 在本项目中的作用:补强现代 C++ 编程范式与工程化表达。
- 参考资料:
CS106B-master/ - 侧重点:递归、回溯、复杂度分析、堆、哈希、链表、树、图、Huffman 编码等。
- 在本项目中的作用:补强算法思维、问题建模与经典题型训练。
cpp-mega-notes/
├─ notes/ # 四门课程融合讲义
├─ implementations/ # 数据结构与算法 C++ 实现
│ ├─ data_structures/
│ └─ algorithms/
├─ visualizations/ # HTML 可视化页面
├─ leetcode/ # 刷题分类与训练记录
├─ ai_tutor/ # AI 助教入口与说明
└─ references/ # 外部参考资料(手动放入)
建议按以下四阶段推进:
优先学习:
notes/sjtu-cpp/notes/stanford-cs106l/01_cpp_foundations.mdnotes/stanford-cs106l/02_streams_and_io.md
目标:
- 掌握变量、控制流、函数、数组、字符串、指针、引用
- 形成基本的模块化编程习惯
- 建立对现代 C++ 基础语法的正确理解
优先学习:
notes/sjtu-data-structures/implementations/data_structures/
目标:
- 理解线性表、栈、队列、树、图、哈希等结构的逻辑与物理表示
- 对照 C++ 代码理解增删查改与复杂度
- 建立“接口 - 存储 - 操作 - 复杂度”四位一体认知
优先学习:
notes/stanford-cs106b/implementations/algorithms/visualizations/
目标:
- 掌握递归、回溯、搜索、排序、图算法的基本思想
- 能把算法过程转化为代码实现
- 能借助可视化页面理解执行流程
优先学习:
leetcode/ai_tutor/
目标:
- 形成题型分类意识
- 把课程知识迁移到真实算法题目中
- 建立自己的错题、模板与复盘体系
如果你需要重新生成目录结构,可在项目根目录执行:
bash cpp-mega-notes/setup.sh在 notes/ 下按课程和专题逐个补充 Markdown 内容,建议每个文件包括:
- 核心概念
- 关键代码
- 复杂度分析
- 易错点
- 与其他课程内容的对应关系
在 implementations/ 中填写对应 .cpp 文件,建议统一包含:
- 数据结构/算法定义
- 核心操作实现
- 简单测试样例
- 时间与空间复杂度说明
在 visualizations/ 中逐步完善 HTML 页面,可结合 CSS/JavaScript 展示:
- 结构变化
- 指针移动
- 遍历过程
- 排序动画
- 路径搜索过程
在 leetcode/problems/ 七大分类目录下记录:
- 题目名称
- 题号与链接
- 解题思路
- 代码实现
- 复盘总结
ai_tutor/ 目录用于后续扩展智能问答、知识导航、学习建议和错题诊断等功能。
可以把四门课内容按以下映射方式打通:
- SJTU C++ 负责语言基础与程序设计思想
- SJTU 数据结构 负责体系化结构与经典算法框架
- CS106L 负责现代 C++ 表达与代码质量
- CS106B 负责递归、问题求解与算法训练
推荐实践方式:
- 先写中文讲义总结概念。
- 再补 C++ 代码实现。
- 再做可视化展示。
- 最后用 LeetCode 题目检验掌握程度。
- 为每个讲义文件补充“前置知识 / 后续关联 / 典型题目”
- 为每个数据结构添加单元测试
- 为每个算法补充性能对比实验
- 为 AI Tutor 增加问答、知识图谱与学习计划生成功能
- 将讲义、代码、可视化、刷题记录串联成统一学习平台
如果你准备继续下一步,可以在这个结构基础上逐步填充内容,最终把它打造成一套真正可复用、可扩展、可检索的 C++ 与算法学习系统。