树的知识点总结

一、树的基本术语

结点的度:结点拥有的子树的数目

叶子结点:度为0的结点

分支结点:度不为0的结点

树的度:树中结点的最大的度

层次:根结点的层次为1,其余结点的层次等于该结点的双亲结点的层次加1

节点的高度 : 节点到叶子节点所有路径上包含节点个数的最大值。叶子节点的高度为1,往上节点的高度依次递增

节点的深度 : 从根节点到节点n唯一的路径的长,根节点深度为1

树的高度/深度:树中结点的最大层次

森林:0个或多个不相交的树组成。对森林加上一个根,森林即成为树;删去根,树即成为森林。

(ps:本文高度、深度基数为1,但是在某些书本上,高度、深度的基数为0,两种记法都没有错,都可以用来描述树的性质,只需要标注(>=1)或者(>=0)做一个区分和解释即可)

 

二、树的性质

1:树的节点数 = 树的总度数 + 1

2:……

 

三、二叉树的性质

1:二叉树第i层上的结点数目最多为2i-1(i>=1)

2:深度为k的二叉树至多有2k-1个结点(k>=1),至少有k个节点

3:包含n个结点的二叉树的高度至少为(log2n)+1

4:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1

5:有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:

  • 若M为结点编号则 如果M<>1,则其父结点的编号为M/2;
  • 如果2*M<=N,则其左儿子(即左子树的根结点)的编号为2*M,若2*M>N,则无左儿子;
  • 如果2*I+1<=N,则其右儿子的结点编号为2*I+1,若2*I+1>N,则无右儿子

6*:给定N个节点,能构成h(N)种不同的二叉树。h(N)为卡特兰数的第N项。h(n)=C(n,2*n)/(n+1)。

 

四、特殊的二叉树

1、满二叉树

高度为h,并且由2h-1个结点组成的二叉树,称为满二叉树。

2、完全二叉树

一棵二叉树中,只有最下面两层结点的度可以小于2,并且最下层的叶结点集中在靠左的若干位置上。

3、平衡二叉树

平衡二叉树要么是一棵空树,要么保证左右子树的高度之差不大于 1 ,且子树也必须是一颗平衡二叉树。

4、二叉查找树/二叉排序树

  • 若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
  • 左、右子树也分别为二叉排序树;
  • 二叉排序树的中序遍历一定是从小到大的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注