- 01-数据结构和算法绪论
- 02-谈谈算法
- 03-时间复杂度和空间复杂度
- 04-时间复杂度和空间复杂度2
- 05-时间复杂度和空间复杂度3
- 06-线性表1
- 07-线性表2
- 08-线性表3
- 09-线性表4
- 10-线性表5
- 11-线性表6
- 12-线性表7
- 13-线性表8
- 14-线性表9
- 15-线性表10
- 16-单链表小结:腾讯面试题
- 17-循环链表
- 18-约瑟夫环
- 19-线性表14
- 20-魔术师发牌问题和拉丁方阵
- 21-线性表16_双向链表
- 22-线性表17
- 23-栈和队列
- 24-栈和队列2
- 25-栈和队列3
- 26-栈和队列4
- 27-栈和队列5_逆波兰计算器
- 28-栈和队列6_中缀表达式转换为后缀表达式
- 29-栈和队列7
- 30-栈和队列8
- 31-栈和队列8
- 32-递归和分治思想1
- 33-递归二
- 34-汉诺塔
- 35-八皇后问题
- 36-字符串
- 37-KMP算法一
- 38-KMP二
- 39-KMP三
- 40-KMP四
- 41-树(一)
- 42-树的存储结构
- 43-树的存储结构二
- 44-二叉树一
- 45-二叉树的性质
- 46-二叉树的存储结构
- 47-二叉树的遍历一
- 48-二叉树的建立和遍历
- 49-线索二叉树
- 50-线索二叉树二
- 51-树,森林和二叉树的转换
- 52-赫夫曼树
- 53-赫夫曼编码
- 54-赫夫曼编码二
- 55-图结构
- 56-图的顶点与边之间的关系
- 57-图的存储结构
- 58-邻接表
- 59-十字链表,邻接多重表,边集数组
- 60-图的遍历-深度优先
- 61-骑士周游问题
- 62-图的广度优先遍历
- 63-带权最小生成树一普里姆算法
- 64-最小生成树克鲁斯卡尔算法
- 65-最短路径之迪杰斯特拉算法
- 66-最短路径之弗洛伊德算法
- 67-拓扑排序
- 68-关键路径
- 69-关键路径(代码讲解)
- 70-查找算法
- 71-插值查找(按比例查找)
- 72-斐波那契查找(黄金分割法查找)
- 73-线性索引查找
- 74-二叉排序树(二叉查找树)
- 75-二叉排序树的查找和插入操作
- 76-二叉排序树的删除操作
- 77-平衡二叉排序树
- 78-平衡二叉树的实现原理
- 79-平衡二叉树的实现原理(代码实现)
- 80-多路查找树之2-3树
- 81-多路查找树之2-3树的插入原理
- 82-多路查找树之2-3树的删除原理
- 83-多路查找树之2-3-4树和B树
- 84-散列表(哈希表)查找
- 85-散列函数的构造方法
- 86-处理散列冲突的方法
- 87-散列表查找的代码实现
- 88-排序算法
- 89-冒泡排序
- 90-选择排序
- 91-直接插入排序
- 92-希尔排序
- 93-堆排序
- 94-堆排序的代码实现
- 95-归并排序(递归实现)
- 96-归并排序(迭代实现)
- 97-快速排序
- 98-快速排序的优化
- 99-总结回顾
从数据结构基础到二叉树、红黑树、哈希表,bobo老师精心设计本课程,详细生动的为你讲解数据结构。让你面对数据结构可以学的会、玩的溜。掌握数据结构,完成从“搬砖”到“盖楼”的蜕变,就在此课。各位小伙伴不要错过!欢迎大家学习《玩转数据结构》课程。在这个课程中,我们将从底层实现诸多数据结构,从简单,到复杂,并且探索他们的应用。在这一章,我们将来看一看数据结构的具体作用,学习数据结构的误区,学习这个课程的注意事项,和课程环境的基本搭建:) ...
数组,看似是最简单的数据结构,但是,大多数语言为我们提供的都是静态数组,如何封装一个属于我们自己的动态数组,将是这一章讨论的重点。同时,我们也将探讨泛型,复杂度分析,乃至复杂度的震荡,等相关高级话题
栈和队列都是极其简单的线性数据结构,其中的操作甚至都是数组操作的子集,但却在计算机科学中有着极其重要的应用。在这一章,我们就来探索栈和队列的奥秘。我们将看到使用底层数据结构搭建上层数据结构的过程,同时对于队列,我们也将改进底层结构,完成循环队列的实现。...
在这一章,我们将接触第一个动态数据结构:链表。我们将通过对链表的底层实现,更深入的理解对引用(或者是指针)的操作。同时,我们也将利用链表,实现栈和队列,并基于不同的底层实现,进行性能的比较。
很多同学都会忽视链表和递归之间千丝万缕的联系。其实,链表也拥有着天然的递归结构。我们在这一章,就将通过链表这种简单的数据结构,一点一点为大家揭开递归,这个在计算机的世界中最为重要的逻辑构成方式的神秘面纱!...