1.二叉树
-
二叉树特点
- 二叉树中的每个节点的度都不大于2
- 节点:在树结构中,每一个元素都称之为节点
- 度:节点的子节点个数称之为该节点的度
-
二叉树结构图
2.二叉查找树
- 二叉查找树特点
- 二叉查找树又称二叉搜索树
- 每个节点的度都不大于2
- 每个节点的左子节点都小于该节点
- 每个节点的右子节点都大于该节点
- 二叉查找树结构图
- 二叉查找数添加子节点规则
- 一样的不添加
- 小的添加到左节点
- 大的添加到右节点
3.平衡二叉数
- 平衡二叉树特点
- 每个节点的左右子节点高度差不大于1
- 每个节点的左右子节点都是一颗平衡二叉树
- 平衡二叉树的旋转
- 旋转时机:当添加新的节点后,平衡二叉树有节点的左右子节点高度差大于1
- 左旋:将二叉树根节点的右侧往左拉,使右子节点成为新的根节点,根节点降级为新的左子节点,并将原右子节点剩余的左子节点让给新的左子节点(原根结点)做右子节点。
- 右旋:将二叉树的根节点左侧往右拉,使左子节点成为新的根节点,根节点降级为新的右子节点,并将原左子节点剩余的右子节点让给新右子节点做左子节点。
- 平衡二叉树旋转的四种情况
- 左左:当平衡二叉树的左子树的左子树有节点插入使二叉树失去平衡时 旋转策略:将二叉树整体右旋即可
- 左右:当平衡二叉树的左子树的右子树有节点插入使二叉树失去平衡时 旋转策略:先将左子树左旋,然后整体右旋
- 右右:当平衡二叉树的右子树的右子树有节点插入使二叉树失去平衡时 旋转策略:将二叉树整体左旋即可
- 右左:当平衡二叉树的右子树的左子树有节点插入使二叉树失去平衡时 旋转策略:先将右子树右旋,然后整体左旋