树的基础概念

661 阅读3分钟

1.先说树的概念:

由结点或者是顶点和边组成的,可能是非线性的,但是绝不存在任何环组成的数据结构



2.树的基本组成概念:

英文
中文
描述
Root根结点树的顶端结点,没有父结点的结点

叶子结点(终端结点)没有孩子的结点

结点拥有的子树个数成为结点的度

一个结点和另外一个结点的连接成为边

路径连接结点和后台节点的序列

层次

结点的层次由根开始,根是第0层,根的第一个子结点在第一层

假如一个结点在第i层,那么其子树的根结点在第i+1层


结点的高度结点的高度是到最长路径的子结点之间的边的个数,最大距离

树的高度树的高度就是根结点的高度

结点的深度

节点的深度是从根节点到其的路径的边的个数

树的深度指的是树的最大层数




结点的高度和深度对比:

  • 高度,从下到上,类比记忆,比如楼多高,从下往上数一层两层;根结点的高度就是树的高度
  • 深度由上往下,从根结点到他的路径的边的个数,树的高度就是树的最大层数



解释图中标红部分


3. 二叉树部分:

定义:最多拥有两个子树,即不存在度大于2的结点,并且有左右之分

二叉树的性质:

  • 结点数量:如果树的层次定义从0开始,那么第i层最多拥有2^i个结点(i>=0)。
  • 高度:高度为k的二叉树,最多拥有2^(k+1) - 1个结点(k>=-1)。 (空树的高度为-1),此时是个满二叉树
  • 度:如果叶子节点个数为m,度为2的结点个数为n,那么m=n+1
完美二叉树:树的高度为k,结点树为2^(k+1) - 1,那么此时是完美二叉树,国内翻译叫满二叉树,就是除了叶子结点外,所有的结点都有左右子节点



                                      图1

完全二叉树:除了最后一层结点外,其余结点都是满二叉树,并且最后一层的结点都靠左对齐


                                        图2

完满二叉树:所有非叶子结点的度都是2,换句话说,只要有孩子,就是两个孩子


                                        图3

中文
英文
定义描述
完美二叉树(满二叉树)perfect binary tree除了叶子结点外每一个结点都有两个孩子
完全二叉树complete除了最后一层外,所有结点都有两个孩子
完满二叉树full只要有孩子,就得是两个孩子

完美二叉树肯定是完全二叉树,也肯定是完满,但反之不一定

完全二叉树可能是完满二叉树,完满二叉树也可能是完全二叉树 。图2都满足

既是完全二叉树又是完满二叉树,也不一定是完美二叉树,图2就是这种情况