C++数据结构与算法实现(目录)
前驱课程
我在这里
前言
很多学生在学习数据结构的时候,不知道如何实现,没有思路。实际上是缺少良好代码的参考,没有模仿对象。
这里的实现并不是提供你一个代码大全,而是 只提供了99%的代码,最为关键核心的几行代码需要你自己填写 。
就像计算机二级C语言上级考试一样。
这样以来学生就 省去了大量的时间从头写代码 ,从头写代码没有良好的设计,眉毛胡子一把抓。有了教程里的示范代码,学生首要的任务是学习设计,其次是学习在这种设计下关键代码的填写,这就等于不仅学会了如何实现,还 学会了如何很好的实现 。
教程的所有代码都是有测试用例的,标准输出答案都会提供,你只需要让程序运行的和标准答案一样即可。这样的好处就在于, 你总是知道自己的代码问题在哪里 。 不至于写完了也不知道写的对不对 。
教程优势
- 有图有真相,有测试用例,有作业
- 提供框架代码,作业只需要代码填空
- 规范开发习惯,培养设计能力
- 教程来自于工作多年实际工作经验和百所欧美大学课程辅导
- 辅导的学生所在的学校:美国-密西根大学;美国-伦斯勒理工大学;美国-华盛顿大学;美国-休斯敦大学;美国-亚利桑那州立大学;美国-东北大学;英国-伦敦大学学院;澳大利亚-阿德莱德大学;澳大利亚-蒙纳士大学;澳大利亚-伍伦贡大学;澳大利亚-新南威尔士大学;加拿大-哥伦比亚大学;加拿大-滑铁卢大学;加拿大-里贾纳大学;中国-复旦大学;中国上海科技大学;中国-清华大学;中国-中国人民大学;中国台湾-元智大学;中国-同济大学;中国-南开大学;
- 我在这里,我在这里哦
刷题建议
刷《C++数据结构教程》的时候,因为一个数据结构的所有接口是一个有机整体,所以应该来回阅读各个接口的代码。找到提示,心中有数。
1 空间复杂度与时间复杂度
1.1 时间复杂度和空间复杂度的最小单位
2 动态数组 Vector
2.1 动态数组 vector 下标操作符重载 (A)(V)
2.2 Vector<T> 动态数组 模板语法 (A)
2.3 Vector 动态数组(迭代器) (A)
2.4 Vector<T> 动态数组(随机访问迭代器) (A)
2.5 String 动态字符串 (完整源码)
-----------------------------------------------
3 链表 List
3.1 单向链表( signal linked list)(指针成员)
3.2 单项链表( signal linked list)(节点成员)
3.2 模板双向排序链表 (A) -------------------
4 栈
4.1 链式栈StackT ---------------------------------------------------------------
4.2 基于链表list封装栈StackL 题目+答案 2分钟看完 -----------------------------
5 队列
5.1 基于链表的队列
6 哈希表
6.1 哈希表HashMap(基于vector和list) (A)
5 二叉树
5.1 二叉查找树(binary search tree) (难度7)(A)---------------
5.2 平衡二叉树AVLTree的实现与应用(难度5/10)
6 排序
6.1 冒泡排序(Bubble Sort) (A)
6.2 插入排序(Insertion Sort) (A)
6.3 选择排序(Selection Sort) (A)
6.4 快速排序(Quit Sort) (A)
6.5 各种排序算法性能对比
8 图
9 智能指针
参考书
1 《C++数据结构与算法(第4版)》 Adam Drozdek 著
2 《数据结构》清华大学 邓俊辉
3 《算法导论》