链表
- 单向链表
- 双向链表
- 单向循环链表
- 双向循环链表
- 动态数组
栈
- 基于数组的栈
- 动态数组的栈
- 基于链表的栈
- 共享栈-数组实现
队列 (都是数组和链表两种实现方式)
- 普通队列
- 优先队列
- 循环队列
- 双端队列
树 (都有前中后序 层序遍历)
- 二叉树
- 二叉查找树(BST)
- 平衡二叉树(AVL)
- 红黑树(RB)
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
- 快速排序
- 桶排序
- 计数排序
- 基数排序
一般都是使用递归实现 回溯的本质就是穷举
一些LeetCode上题目的回溯算法题解
每一次的寻找局部最优解最终得到整体最优解 局限性,并不是所有的都可以通过局部最优解得到整体最优先解的 前面的选择会影响后面的选择(具备后效性的就不能使用贪心)
一些LeetCode上的题解