二叉树
基本概念:
根节点root是唯一的一个父节点,每个节点都有两个子节点,左边的节点的值比自己小,右边的比自己大
- 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。
- 二叉树的第 i 层至多有 2i−1 个结点。
- 深度为 k 的二叉树至多有 2k−1 个结点。
- 对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
- 一棵深度为k,且有 2k−1个节点称之为满二叉树;
- 深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。
- 平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
遍历方式
前序遍历:ABDCEF
中序遍历: DBAECF
后序排序:FECDBA
红黑树
概述:
是一种自平衡的二叉树
特性:
- 根节点是黑色
- 节点是黑色或红色
- 每个叶子的节点都是黑色的空节点
- 每个红节点的子节点都是黑节点
- 从任意节点到叶子的所有路径都包含相同数目的黑色节点
经典红黑树:
破坏红黑树规则的调整方式有两种:变色、旋转(左旋转,右旋转)
变色:
(1)
(2)
(3)
左旋转:逆时针
右旋转:顺时针