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