栈和队列
栈:先进后出(FILO)的数据结构
队列:先进先出(FIFO)的数据结构
栈:提供push pop等接口。不是容器,而是可更换实现底层容器的容器适配器
二叉树
二叉树的种类:
- 满二叉树:二叉树,只有度为0和度为2的结点,且度为0的结点在同一层,即为满二叉树:深度为k,有2^k-1个结点
- 完全二叉树:除了最底层结点未充满外其余层数结点都达到最大值的二叉树,且最底层结点都在左侧。或者相同层数的满二叉树剔除了最底层右侧的若干结点,得到的就是完全二叉树。
优先队列是一个堆,堆就是一棵完全二叉树。
- 二叉搜索树,,每个结点有数值的二叉树,且是一个有序树。满足:
- 左子树结点值小于根结点
- 右子树结点值大于根结点
- 左右子树递归也是二叉搜索树
- 平衡二叉搜索树
AVL树,左右子树高度差不超过1,左右子树都是一棵平衡二叉树
二叉树的存储方式
连式存储和顺序存储
二叉树的遍历方式
深度优先遍历和广度优先遍历
- 深度优先遍历,回溯法实现,先走到叶子结点,再一步步回退。
- 广度优先遍历,队列实现,一层层遍历,出队一个结点,入队它的左右子树根结点。