-
树的相关概念
1.1树的概念
树是一种非线性的数据结构,由n个有限节点组成的一个具有层次关系的集合。
-
根节点:没有前驱的节点
-
除根结点外,其余节点被分为n-1个互不相交的集合,而每一个集合又是一颗结构与树类似的子树,每颗子树的根节点只有一个前驱,可以有0个或多个后继。因此,树是递归定义的。
-
度:该节点的子女的个数称为节点的度。
-
叶子节点:度为零的节点
-
分支节点:度不为零的节点
-
父节点:若一个节点有子节点,那么称这个节点为其子节点的父节点。
-
子节点:一个节点含有的子树的根节点称为该节点的子节点。
-
树的度:一颗树中,最大的节点的度成为树的度。
-
节点的层次:从根开始定义,根为第一层,根的子节点为第二层,依次类推。
-
树的高度或深度:树中节点的最大层次。
-
森林:由m棵互不相交的树构成的集合成为森林。
-
-
二叉树的概念及其结构
-
概念:
- 一颗二叉树是节点构成的一个有限集合,该集合或者为空,或者由一个根节点加上两棵被称为左子树和右子树的二叉树构成。
-
二叉树的特点:
- 每一个节点至多由两棵子树,即二叉树不存在度大于2的节点。
- 二叉树是有序树,其子树的次序不能颠倒。
-
特殊的二叉树:
- 满二叉树:一个二叉树,如果其每一层的节点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且总结点个数为:(2^K)-1,那他就是满二叉树。
- 完全二叉树:完全二叉树是由满二叉树引出来的。有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树
-
二叉树的性质
- 若规定根节点的层数为1,则一棵非空二叉树的第i层最多有个节点。
- 若规定根节点的层数为1,则深度为h的二叉树的最大节点数为:。
- 对任何一棵二叉树,如果度为0其叶子节点的个数为n0,度为2的分支节点的个数为n2,则有 ;
- 若规定根节点的层数为1,具有n个节点的完全二叉树的深度:;
- 对于具有n个节点的完全二叉树,如果按照从上往下,从左至右的数组顺序对所有节点进行编号,则对序号为i的节点具有:
- 若i>0,i位置的双亲序号为:(i-1)/2;i=0,i为根节点,无双亲节点。
- 若2i+1<n,左孩子序号为:2i+1,2i+1>=n,则无左孩子。
- 若2i+1>n,右孩子序号为:2i+2,2i+1>=n,则无右孩子。