树概念
树是有n(n>=0)个节点的有限集,有空树(n=0)和非空树。
对于非空树来说,它有且仅有一个称之为根的节点;除了根节点外的其余节点可分为多个互不相交的有限集T1,T2,T3……,Tm,其中每一个集合本身又是一棵树,称为根的子树。
1、结点(Node):表示树中的数据元素,由数据项和数据元素之间的关系组成。在图中,共有10个结点。
2、结点的度(Degree of Node):结点所拥有的子树的个数,在图中,结点A的度为3。
3、树的度(Degree of Tree):树中各结点度的最大值。在上图中,树的度为3。
4、叶子结点(Leaf Node):度为0的结点,也叫终端结点。在上图中,结点E、F、G、H、I、J都是叶子结点。
5、分支结点(Branch Node):度不为0的结点,也叫非终端结点或内部结点。在上图中,结点A、B、C、D是分支结点。
6、孩子(Child):结点子树的根。在图中,结点B、C、D是结点A的孩子。
7、双亲(Parent):结点的上层结点叫该结点的双亲。在图中,结点B、C、D的双亲是结点A。
8、祖先(Ancestor):从根到该结点所经分支上的所有结点。在图中,结点E的祖先是A和B。
9、子孙(Descendant):以某结点为根的子树中的任一结点。在图中,除A之外的所有结点都是A的子孙。
10、兄弟(Brother):同一双亲的孩子。在上图中,结点B、C、D互为兄弟。
11、结点的层次(Level of Node):从根结点到树中某结点所经路径上的分支数称为该结点的层次。根结点的层次规定为1,其余结点的层次等于其双亲结点的层次加1
12、堂兄弟(Sibling):同一层的双亲不同的结点。在图中,G和H互为堂兄弟。
13、树的深度(Depth of Tree):树中结点的最大层次数。在上图中,树的深度为3。
14、无序树(Unordered Tree):树中任意一个结点的各孩子结点之间的次序构成无关紧要的树。通常树指无序树。
15、有序树(Ordered Tree):树中任意一个结点的各孩子结点有严格排列次序的树。二叉树是有序树,因为二叉树中每个孩子结点都确切定义为是该结点的左孩子结点还是右孩子结点。
16、森林(Forest):m(m≥0)棵树的集合。自然界中的树和森林的概念差别很大,但在数据结构中树和森林的概念差别很小。从定义可知,一棵树由根结点和m个子树构成,若把树的根结点删除,则树变成了包含m棵树的森林。当然,根据定义,一棵树也可以称为森林。
例题:
问:假设一个度为3的树 其中度为3的节点数为2 度为2的节点数为1 度为1的节点数为1 求树的节点是多少? 叶子节点是多少?
答案就是上图 它的规律是:总节点数 = 度数 * 节点数 + 1 即: 3 * 2 + 2 * 1 + 1 * 1 + 1 = 10
二叉树概念特征(通俗篇)
除了根节点外的其余节点可分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树,且T1和T2本身也是二叉树
一、 完全二叉树
-
只允许最后一级节点有空节点
-
如果有空节点一定是二叉树的右子树
-
对任一结点,若其右分支下子孙的最大层次为l,则其左分支下子孙的最大层次必为l加1;
二、 满二叉树
-
除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。
-
一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树
补充:满二叉树节点的计算 2的n次方 -1 (2^n)-1 这里n代表二叉树的层级