树
树的基本概念
节点的度:子树的个数
树的度:所有节点度中的最大值
叶子节点:度为0的节点
非叶子节点:度不为0的节点
一棵树可以没有任何节点,称为空树
一棵树可以只有一个节点,也就是只有根节点
层数:根节点在第一层,根节点的子节点在第2层,以此类推
节点的深度:从根节点到当前节点的唯一路径上的节点总数
节点的高度:当前节点到最远叶子节点的路径上的节点总数
有序树
无序树
树中任意节点的子节点之间没有顺序关系,也称为自由树
森林
二叉树的特点
每个节点的度最大为2(做多拥有2棵子树)
左子树和右子树是有顺序的(也就是说二叉树是有序的)
即使某节点只有一颗子树,也要区分左右子树
二叉树的性质
非空二叉树的第i层,最多有2的(i-1)个节点(i >= 1)
在高度为h的二叉树最多有2的h次方-1个节点(h >= 1)
真二叉树
满二叉树
满二叉树:最后一层节点的度都为0,其他节点的度都为2
在同样高度的二叉树中,满二叉树的叶子节点数量最多、总节点数量最多
满二叉树一定是真二叉树,真二叉树不一定是满二叉树
完全二叉树
完全二叉树:对节点从上至下、左至右开始编号,其所有编号都能与相同高度的满二叉树中编号对应
完全二叉树的性质:
叶子节点只会出现最后2层,最后1层的叶子节点都靠左对齐
完全二叉树从根节点至倒数第2层是一棵满二叉树
满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树
度为1的节点只有左子树
度为1 的节点要么是1个,要么是0个
同样节点数量的二叉树,完全二叉树的高度最小