二叉树:用索引值父节点找左右孩子节点index*2+1or2 加1是左孩子节点加二是右孩子节点
- 无序树
- 完全树:除最后一层可以不满
- 满树:除叶子节点没有子节点,其他节点都有左右子节点
- 完美数:除叶子节点,每个节点都有两个子节点
- 哈夫曼树:最优二叉树
- 有序树
- 平衡树:每个节点左右差层不能超过1
- 红黑树
- B类树(b数、B+树)
- 非平衡树
完全树图例:必须是从左节点到右节点,缺少左叶子节点不是完全树)
满树图例:
完美树图例:
非平衡树图例:
平衡树图例:
非平衡树转二叉树:
非平衡树的6种形态左撇、右撇、LL、RR、LR、RL
注意:
- 出现LL时,以第一个L为旋转点,转换成平衡树
- 出现LR时,以R为旋转点,先旋转称LL,再以第一个L为旋转点,转成平衡树
- 出现LR时如果失衡点有左右子节点,则无法直接旋转,需要先进行失衡点与左子节点的小旋转,然后再按照上述方式做后续旋转。
- RL与LR方式恰恰相反
1.左撇结构:
2.右撇结构:
3.LL
4.RR(与LL同理)
5.LR
6.RL
图:
- 无向图
- 有向图
- 有向带权图
- 图(无向、有向图、有向带权图)在数学层面可使用二维矩阵表示,在编程用二维数组表
- 无向图二维矩阵:(无向图的二维矩阵只能在对称线的一边)
- 有向图二维矩阵:
有向带权图二维矩阵: