目录
树的概念
树,是一种非线性的数据结构。在定义树的时候,我们通常采用递归的方法进行定义。首先介绍关于树的重要专有名词。为便于直观理解,我们展现图像进行解释。
结点的度:一个结点含有的子树的个数。如上图中的结点A,我们可以看到通过A衍生出6个子树,因此,结点A的度为6。
叶结点:度为0的结点。如上图中的B,C等均为叶结点,即该结点后不再有与其连接的结点。
分支结点:度不为0的结点。如上图中的D等。
子结点:与前一个结点连接的结点。如上图中,B与上层结点A相连,则B为A的子结点。注意,父子结点必须紧密相连。
兄弟结点:具有相同父亲结点的结点。如上图中,B、C结点有共同的父亲结点A则称B和C为兄弟结点。
树的度:一个树中最大的结点的度为树的度。如上图中,A结点的度为6为最大的结点的度,因此该树的度为6。
树的深度:树中结点的最大层次。如上图中,共四层,因此这棵树的深度为4。
二叉树的概念
二叉树是一种特殊的树形结构。
通俗来讲,二叉树是结点的一个有限集合,该集合只有两种可能性:1.为空 2.由一个根结点加上两颗左右子树的二叉树组成。如图,展示一棵简易二叉树以便理解。
由上图额可以知道二叉树两个重要性质,1.二叉树的度最大只能为2,因此不存在度大于2的结点。2.二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树。
二叉树的类别
二叉树又可以细分为:满二叉树、完全二叉树。如图。
满二叉树 :树的每一层都是满的。
完全二叉树:除最后一层外每一层需满,且最后一层的树必须连续。
若满二叉树共有i层,则共有2^i-1个结点,第i层有2^(i-1)个结点
若完全二叉树有n层,则完全二叉树的结点范围为[2^(h-1),2^h-1]。
注意:堆在逻辑结构上即为完全二叉树。
父子结点间的计算
父子结点间的下标关系如下:leftchild = parent*2+1 ;rightchild = parent*2+2。
parent = (child-1)/2