二叉树
性质:
- 在二叉树的第i层上最多有2^(i-1)个结点(i>=1)。
- 深度为k的二叉树至多有2^k –1个结点(k>=1)。
- 【特别】一棵深度为k且有2k–1个结点的二叉树称为满二叉树。如下图A为深度为4的满二叉树,这种树的特点是每层上的结点数都是最大结点数。
- 对任意一棵二叉树,如果其叶结点数为n0,度为2的结点数为n2,则一定满足:n0=n2+1。
- 具有n个结点的完全二叉树的深度为floor(log2n)+1。
- 对于一棵n个结点的完全二叉树,对任一个结点(编号为i),有:①如果i=1,则结点i为根,无父结点;如果i>1,则其父结点编号为i/2。如果2*i>n,则结点i无左孩子(当然也无右孩子,为什么?即结点i为叶结点);否则左孩子编号为2*i。 ②如果2*i+1>n,则结点i无右孩子;否则右孩子编号为2*i+1。
存储结构:
- 链式存储结构,即单链表结构或双链表结构(同树)。
- 顺序存储结构,即几个数组加一个指针变量。
二叉排序树与set和map有着密切的关系。