课程介绍

适合人群:

有工作经验想要完整学习数据结构,有一定c或者c++编程基础,有志于参加蓝桥杯、ACM程序设计竞赛

你将会学到:

1.理解数据结构的由来,并能熟练学习程序设计的基本技能。2.从代码级别完全实现了经典数据结构的全部内容。3.通过数据结构知识讲解,为后继算法设计、求职笔试、研究生入学考试打下了良好基础。

课程目录

第1章 绪论与线性表(7小时47分钟24节)

1-1 课程介绍
1-2 数据结构本质论-计算思维解析:来自客户信息维护,交通灯问题
1-3 数据结构新视角:数据结构就是存数值、存关系
1-4 数据结构与程序性能衡量——大O记法的工程价值
1-5 线性表工程背景与学习要点:Word的场景、手机接入与数据结构
1-6 数组顺序表(一)定义与初始化
1-7 数组顺序表(二)求元素个数、取元素与定位
1-8 数组顺序表(三)插入、删除与功能测试完成
1-9 单链表与顺序表(一)存关系与节点联系跟踪解析
1-10 单链表与顺序表(二)求元素个数、取值与查找
1-11 建立单链表尾插法深入剖析(三)链表结构的内存是由程序员管理的
1-12 建立单链表头插法深入剖析(四)头插法的三种方案
1-13 单链表元素插入(五)前插与后插的实现
1-14 单链表顺序表的删除(六)逻辑结构与物理结构的再认识
1-15 单链表顺序表的功能验证(七)
1-16 建立自己的库函数(八)数组顺序表与单链表顺序表的封装
1-17 单链表案例(一)就地转置-原表与逆序表占用空间相同:数组结构
1-18 单链表的运算思想:单链表节点关系的维护与单链表操作算法设计
1-19 单链表案例(二)一元多项式相加
1-20 单链表案例(三):学生管理系统(数组)——具有预订空间的解决
1-21 链表的变体循环链表(一):单步跟踪下的详细分析
1-22 循环链表(二):建立与合并
1-23 约瑟夫环的实现(三):循环链表调试bug定位技巧
1-24 双向链表的实现与在Linux内核中应用的浅要介绍

第2章 栈和队列 (5小时57分钟 16节)

2-1 栈的工程背景:函数栈帧调用与call stack的调
2-2 栈的学习要点:栈的逻辑定义与程序实现对应关系的剖析
2-3 顺序栈的实现:数值转换的应用案例
2-4 链栈的实现:指针初始化的调试技巧分享
2-5 递归与函数栈帧深入剖析:call stack调试技巧
2-6 队列的工程背景与设计技巧:游戏用户进入等待,邮件重发
2-7 顺序队列设计技巧剖析:“假溢出”与循环队列,fron
2-8 链队列设计技巧剖析:单步跟踪链队列运行剖析与内存释放
2-9 中缀表达式完全剖析:巧用C/C++重命名复用SeqS
2-10 后缀表达式(逆波兰表达式)实现
2-11 带括号的中缀表达式转后缀表达式
2-12 八皇后问题的非递归实现-回溯法与栈的应用(一)
2-13 迷宫路径求解的非递归实现-回溯法与栈的实现(二)
2-14 递归设计入门:将递归函数看成答案本身
2-15 八皇后问题的递归实现
2-16 迷宫路径求解的递归实现

第3章 树和二叉树 (10小时23分钟 30节)

3-1 树的工程背景:网站结构、表达式树及相关概念定义介绍
3-2 双亲孩子检验法是树形结构存储的法则:部门信息存储的实
3-3 二叉树的由来与树的孩子兄弟存储发法:树型链式存储中的
3-4 数组与链表的结合:孩子链表表示法
3-5 二叉树与树相互转化的算法流程介绍
3-6 满二叉树、完全二叉树与二叉树的三条基本性质
3-7 数组形式的二叉树完全实现:以二叉搜索树建立为例
3-8 智能制造中的树形结构应用案例:数据结构是程序的灵魂
3-9 层次法建立二叉链表树详细剖析:使用辅助队列“存关系”
3-10 二叉链表的跟踪技巧、工程经验分享与非线性结构遍历问题
3-11 前序、中序、后序遍历的定义、递归实现与层次法遍历需要
3-12 观念中的二叉树构建:通过经典习题构建二叉树思维模型
3-13 非递归前序遍历二叉树:一个深拷贝引出的bug剖析
3-14 非递归中序遍历二叉树
3-15 非递归后序遍历二叉树:一个短路逻辑的实践技巧
3-16 当前非递归遍历方案评述:存在的问题与程序优化的思路
3-17 栈结构与树结构之间传递的程序设计技巧和软件复用的设计
3-18 重构到非递归遍历的经典数据结构:非侵入式数据结构设计
3-19 获取二叉树的所有叶子节点、获取全树深度与左右子树深度
3-20 根据前序、中序序列重建一棵二叉树的代码实现
3-21 求一棵二叉树根到所有叶子节点的路径
3-22 判断两棵树是否相等与使用二叉链表法建立二叉搜索树
3-23 二叉树镜像:交换左右子树
3-24 平衡二叉树(AVL)的概念:与二叉搜索树的辨析
3-25 平衡二叉树(AVL)单向左旋、单向右旋图示法讲解
3-26 平衡二叉树(AVL)先左后右、先右后左图示法讲解
3-27 平衡二叉树(AVL)完全代码实现
3-28 二叉树的结构展示:层次遍历二叉树完全代码实现
3-29 哈夫曼树与最优不等长编码:Huffman树的由来
3-30 哈夫曼树完全代码实现

第4章 图 (8小时 15节)

4-1 拓扑形态等价性-图的工程抽象:地图染色、搜索引擎、最
4-2 图的概念及数据结构:邻接矩阵法的示例与代码实现
4-3 邻接表的示例与代码实现
4-4 边集数组法、十字链表法、邻接多重表:图的存储结构评述
4-5 图的染色与日期冲突安排案例完全代码实现:Welsh-
4-6 邻接数组的深度(DFS)、广度(BFS)优先遍历完全
4-7 邻接表的深度(DFS)、广度(BFS)优先遍历完全代
4-8 网络冗余链路问题与图的最小生成树
4-9 Kruskal算法与并查集完全代码实现:图的最小生成
4-10 Prim算法完全代码实现:图的最小生成树算法
4-11 图的单源最短路径:Dijkstra算法完全代码实现
4-12 图的多源最短路径:Flod-Warshall算法完全
4-13 先修排课、编译器分析与AOV网的拓扑排序
4-14 活动顶点拓扑排序AOV网完全代码实现-先修课程案例
4-15 工期排序、AOE网与关键路径法以及堆内存分配调试经验

第5章 排序与查找 (6小时25分钟 18节)

5-1 排序概论与直接插入排序完全代码实现
5-2 插入排序的改进:希尔排序(缩小增量排序法)完全代码实
5-3 交换排序:冒泡排序完全代码实现
5-4 交换排序:快速排序完全代码实现
5-5 选择排序:直接选择排序完全代码实现
5-6 选择排序:堆排序完全代码实现
5-7 归并排序概念与2-路归并排序完全代码实现
5-8 桶排序概念与基数排序算法完全代码实现
5-9 各类排序的比较与总结
5-10 各类索引结构图示讲解
5-11 查找有序线性表:二分查找法完全代码实现
5-12 查找有序线性表:斐波那契查找法完全代码实现
5-13 字典树(Trie树)词频统计、单词搜索的完全代码实现
5-14 字符串的搜索与匹配(BF与KMP算法)完全剖析
5-15 散列技术
5-16 经典算法举例:穷举、贪心与动态规
5-17 综合案例Huffman压缩
5-18 综合案例动态数组