什么是数据结构
什么是算法
数据结构和算法的重要性
数据结构 -1- 时间复杂度和空间复杂度 | C
算法效率
时间复杂度
大O的渐进表示法
eg
空间复杂度
常见复杂度对比
消失的数组
轮转数组
数据结构 -2.1- 顺序表
数据结构 -2.2- 链表 | 【单链表的增删查改】
数据结构 -2.3- 带头双向循环链表 | C
什么是线性表
顺序表
什么是顺序表
静态顺序表
动态顺序表
顺序表的实现
增删查改
链表
单链表
什么是链表
头结点
单链表的实现
带头双向循环链表
链表的种类
带头/不带头
哨兵位(带头方便尾插)
双向/单向
循环/不循环
带头双向循环链表的实现
顺序表和链表的区别
移除元素
删除有序数组中的重复项
合并两个有序数组
反转链表
移除单链表的元素
合并两个有序链表
链表的中间结点
链表中的倒数第K个结点
环形链表Ⅰ
环形链表Ⅱ
链表分割
链表的回文结构
相交链表
复制带随机指针的链表(较难)
数据结构 -3.1- 栈 | C
数据结构 -3.2- 队列 | C
栈
什么是栈
栈的实现
数组栈
队列
什么是队列
队列的实现
链式队列
有效的括号
用队列实现栈
用栈实现队列
设计循环队列
【二叉树】概念知识| 数据结构 | [笔记]
【二叉树-堆】| [堆的实现【建堆算法图解+分析】]
二叉树的实现 | C(遍历、节点个数、查找)
树
相关概念
树的表示
孩子兄弟表示法
二叉树
满二叉树
完全二叉树
堆
大堆
小堆
parent与child下标关系
堆的实现
向上调整
向下调整
建堆算法
推排序
TopK问题
二叉树的遍历
前序遍历
中序遍历
后序遍历
层序遍历
判断二叉树是否为完全二叉树
二叉树的函数接口实现
单值二叉树
相同的树
另一颗树的子树
二叉树的前序遍历
对称二叉树
数据结构 - 排序 | C (插入、希尔、选择、堆、冒泡)
数据结构 - 快排 | C
数据结构 - 归并排序 | C
数据结构 - 计数排序 | C
插入排序
直接插入排序(InsertSort)
希尔排序(ShellSort)
选择排序
选择排序(SelectSort)
堆排序(HeapSort)
交换排序
冒泡排序(BubbleSort)
快速排序(QuickSort)
递归
Hoare版
挖坑法
前后指针
非递归
归并排序
MergeSort
递归
迭代
计数排序
很局限