- 1_1.1.1 关于数据组织-例_图书摆放
- 2_1.1.2 关于空间使用-例_PrintN函数实现
- 3_1.1.3 关于算法效率-例_计算多项式值
- 4_1.1.4 抽象数据类型
- 5_1.2.1 算法的定义
- 6_1.2.2 什么是好的算法
- 7_1.2.3 复杂度的渐进表示
- 8_1.3.1 应用实例-算法1 & 2
- 9_1.3.2 应用实例-算法3
- 10_1.3.3 应用实例-算法4
- 11_“中国高校计算机大赛-团体程序设计天梯赛”酷炫视频
- 12_2.1.1 引子_多项式表示
- 13_2.1.2 线性表及顺序存储
- 14_2.1.3 顺序存储的插入和删除
- 15_2.1.4 链式存储及查找
- 16_2.1.5 链式存储的插入和删除
- 17_2.1.6 广义表与多重链表
- 18_2.2.1 什么是堆栈
- 19_2.2.2 堆栈的顺序存储实现
- 20_2.2.3 堆栈的链式存储实现
- 21_2.2.4 堆栈应用_表达式求值
- 22_2.3.1 队列及顺序存储实现
- 23_2.3.2 队列的链式存储实现
- 24_2.4 多项式的加法运算实现
- 25_1.题意理解与多项式表示
- 26_2.程序框架及读入多项式
- 27_3.加法、乘法运算及多项式输出
- 28_3.1.1 引子(顺序查找)
- 29_3.1.2 引子(二分查找例子)
- 30_3.1.3 引子(二分查找实现)
- 31_3.1.4 树的定义和术语
- 32_3.1.5 树的表示
- 33_3.2.1 二叉树的定义及性质
- 34_3.2.2 二叉树的存储结构
- 35_3.3.1 先序中序后序遍历
- 36_3.3.2 中序非递归遍历
- 37_3.3.3 层序遍历
- 38_3.3.4 遍历应用例子
- 39_1.题意理解及二叉树表示
- 40_2.程序框架、建树及同构判别
- 41_4.1.1 二叉搜索树及查找
- 42_4.1.2 二叉搜索树的插入
- 43_4.1.3 二叉搜索树的删除
- 44_4.2.1 什么是平衡二叉树
- 45_4.2.2 平衡二叉树的调整
- 46_1.题意理解及搜索树表示
- 47_2.程序框架及建树
- 48_3.搜索树是否一样的判别
- 49_线形结构习题.1 什么是抽象的链表
- 50_线形结构习题.2 链表逆转算法
- 51_线性结构习题.3 测试数据
- 52_5.1.1 什么是堆
- 53_5.1.2 堆的插入
- 54_5.1.3 堆的删除
- 55_5.1.4 堆的建立
- 56_5.2.1 什么是哈夫曼树
- 57_5.2.2 哈夫曼树的构造
- 58_5.2.3 哈夫曼编码
- 59_5.3.1 集合的表示及查找
- 60_5.3.2 集合的并运算
- 61_堆中的路径
- 62_小白-FT.1 集合的简化表示
- 63_小白-FT.2 题意理解与TSSN的实现
- 64_小白-FT.3 按秩归并
- 65_小白-FT.4 路径压缩
- 66_6.1.1 什么是图-定义
- 67_6.1.2 什么是图-邻接矩阵表示法
- 68_6.1.3 什么是图-邻接表表示法
- 69_6.2.1 图的遍历-DFS
- 70_6.2.2 图的遍历-BFS
- 71_6.2.3 图的遍历-为什么需要两种遍历
- 72_6.2.4 图的遍历-图不连通怎么办
- 73_6.3 应用实例_拯救007
- 74_6.4 应用实例_六度空间
- 75_小白-BG.1 邻接矩阵表示的图结点的结构
- 76_小白-BG.2 邻接矩阵表示的图-初始化
- 77_小白-BG.3 邻接矩阵表示的图-插入边
- 78_小白-BG.4 邻接矩阵表示的图-建立图
- 79_小白-BG.5 邻接表表示的图结点的结构
- 80_小白-BG.6 邻接表表示的图-建立图
- 81_树习题-TTA.1 题意理解
- 82_树习题-TTA.2 核心算法
- 83_树习题-CBST.1 数据结构的选择
- 84_树习题-CBST.2 核心算法
- 85_树习题-CBST.3 计算左子树的规模
- 86_树习题-HC.1 题意理解
- 87_树习题-HC.2 计算最优编码长度
- 88_树习题-HC.3 检查编码
- 89_7.1.1 概述
- 90_7.1.2 无权图的单源最短路
- 91_7.1.2-s 无权图的单源最短路示例
- 92_7.1.3 有权图的单源最短路
- 93_7.1.3-s 有权图的单源最短路示例
- 94_7.1.4 多源最短路算法
- 95_小白-HP.1题意理解
- 96_小白-HP.2 程序框架搭建
- 97_小白-HP.3 选择动物
- 98_小白-HP-4 模块的引用与裁剪
- 99_8.1.1 Prim算法
- 100_8.1.2 Kruskal算法
- 101_8.2.1 拓扑排序
- 102_8.2.2 关键路径
- 103_图习题.1 核心算法
- 104_图习题.2 其他推广
- 105_9.1.1 概述
- 106_9.1.2 冒泡排序
- 107_9.1.3 插入排序
- 108_9.1.4 时间复杂度下界
- 109_9.2 希尔排序
- 110_9.3.1 选择排序
- 111_9.3.2 堆排序
- 112_9.4.1 有序子列的归并
- 113_9.4.2 递归算法
- 114_9.4.3 非递归算法
- 115_10.1.1 算法概述
- 116_10.1.2 选主元
- 117_10.1.3 子集划分
- 118_10.1.4 算法实现
- 119_10.2.1 算法概述
- 120_10.2.2 物理排序
- 121_10.3.1 桶排序
- 122_10.3.2 基数排序
- 123_10.3.3 多关键字的排序
- 124_10.4 排序算法的比较
- 125_11.1.1 引子_散列的基本思路
- 126_11.1.2 什么是散列表
- 127_11.2.1 数字关键词的散列函数构造
- 128_11.2.2 字符串关键词的散列函数构造
- 129_11.3.1 开放定址法
- 130_11.3.2 线性探测
- 131_11.3.3 线性探测—字符串的例子
- 132_11.3.4 平方探测法
- 133_11.3.5 平方探测法的实现
- 134_11.3.6 分离链接法
- 135_11.4 散列表的性能分析
- 136_11.5 文件中单词词频统计
- 137_小白-PM.1题意理解与解法分析
- 138_小白-PM.2 程序框架搭建
- 139_小白-PM.3 输出狂人
- 140_小白-PM-4 模块的引用与裁剪
- 141_习题-IOM.1 插入排序的判断
- 142_习题-IOM.2 归并段的判断
- 143_习题-SWS.1 环的分类
- 144_习题-SWS.2 算法示例
- 145_习题-HHV 算法思路概述
连计算机系教授都推荐的浙大数据结构课!143讲彻底吃透编程核心
每次看到大厂面试官抛出二叉树遍历题就心虚?算法竞赛遇到动态规划直接弃疗?这门浙江大学精心打磨的《数据结构(143讲)》就是为你准备的救星!我们把散落的知识珍珠串成项链,连小白都能看懂链表指针的魔法。
为什么说这是改变你编程思维的必修课?
记得刚开始学编程时,我用最笨的数组暴力解题被教授批评"内存爆炸"。直到系统学了浙大这套课程,才明白哈希表能像快递柜一样快速存取数据,B+树简直是数据库的骨骼支架。
课程采用独特的"问题驱动教学法":从迷宫导航引出栈结构,用淘宝商品分类讲透树形存储。特别是那些"小白专场"实操环节,手把手教你用代码把抽象算法落地,光链表反转就演示了3种不同段位的写法。
适合这些急需突破的学习者
- 被leetcode题虐到怀疑人生的在校生
- 想系统性补强底层知识的转码选手
- 需要优化程序性能的开发工程师
- 备考计算机考研的数据结构萌新
143讲精华内容全揭秘
第一模块就用贪吃蛇游戏讲链表操作,把晦涩的指针移动可视化:蛇头插入新节点相当于吃豆子,尾部删除就是蛇身移动。这种生活化类比让理解度飙升200%!
核心知识图谱包括:
- 线性结构:数组实现队列的假溢出陷阱
- 树形结构:红黑树如何维持搜索平衡
- 图论基础:Dijkstra算法找最短快递路径
- 查找排序:为何快排比冒泡快上百倍
每章都配备的实战彩蛋
讲完堆排序原理立刻带写优先队列,用美团骑手派单案例演示优先级的实际应用。还有那些"坑点警示"特别实用,比如提醒递归深度超出限制要怎么改写成迭代。
整套课程既保持学术严谨性——严格推导空间时间复杂度,又充满工程师的实用智慧。最后几讲还预留了区块链默克尔树、推荐系统图谱这些前沿拓展,为后续学习打开天窗。
当你真正搞懂数据结构的精妙设计,就会明白为什么大厂面试总爱问"HashMap实现原理"。这不仅是解题技巧的提升,更是编程思维的质变飞跃。








