树
树的定义:树是n(n>=0)个结点的优先集。n=0时称为空树。 在任意一个非空树中,有且仅有一个特定的根的结点;当n>1时,其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一棵树,并称为根的子树。 注意:n>0时根节点是唯一的;m>0时,子树的个数没有限制,但它们一定是互不相交的。
结点
度:结点拥有的子树数 度为0的结点称为叶结点(有时也称为叶子)或终端结点 度不为0的结点称为非终端结点或分支结点 树的度是树内各结点的度的最大值 深度/高度:树中结点的最大层次,下图的树的深度为4
二叉树
二叉树:是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成。 二叉树的模型适合用于在某个阶段都是两种结果的情形,比如开和关、0和1、真和假、上和下、对和错等。
二叉树的特点:
- 每个结点最多有两棵树,所以不存在度大于2的结点。注意不是只有两棵,而是最多有。没有子树或者有一棵子树是可以的
- 左子树和右子树是有顺序的,次序不能任意颠倒
- 即使树中某节点只有一棵树,也要区分它是左子树还是右子树
特殊二叉树
斜树:所有结点都是只有右子树的二叉树叫右斜树,所有结点都是只有左子树的二叉树叫左斜树 满二叉树:除了叶节点外每个结点的度都是2,且叶节点都在同一层。 完全二叉树:对一棵具有n个结点的二叉树按层序编号,如果编号为i的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则该二叉树称为完全二叉树。(有些难理解
判断完全二叉树的方法:给每个结点按照满二叉树的结构逐层顺序编号,如果编号出现空挡,就说明不是完全二叉树,否则就是。
完全二叉树的特点:
- 叶子结点只能出现在最下两层
- 最下层的叶子一定集中在左部连续位置
- 倒数二层,若有叶子结点,一定都在右部连续位置
- 如果结点度为1,则该结点只有左孩子,即不存在只有右子树的情况
- 同样结点数的二叉树,完全二叉树的深度最小
二叉树的性质:(重点,敲黑板了
- 性质1:在二叉树的第i层上至多有 2^(i-1) 个结点
- 性质2:深度为k的二叉树至多有 2^k - 1 个结点(k>=1)
- 性质3:对任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1
- 性质4:具有n个结点的完全二叉树的深度为 [log2n]+1 ([x]表示不大于x的最大整数)
|