赞
踩
树(Tree)是由n(n≥0)个有限节点组成一个具有层次关系的集合,n=0时称为空树。
在任意一棵非空树中:
(1)有且仅有一个特定的称为根(root)的结点。
(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm, 其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)
节点分类 | 特点 | 说明 |
---|---|---|
根(root) | 没有父节点只有子节点的节点 | |
叶子(leaf)/终端节点 | 没有子节点或者子节点是空的节点 | 叶子结点度为0 |
分支节点/非终端节点 | 分支节点包含根节点 |
注:结点的度,即是指结点拥有子结点的数量。
节点的度数:节点孩子的个数
树的度:树中节点的度最大值。
层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推。
节点的高度:节点到最远叶子节点的最长路径上边的数量。叶子节点高度为0。
节点的深度:节点到根节点的路径上边的数量。所有根节点深度为0。
树的高度:树的高度等于根节点的高度,等于最远叶子节点的深度。
树的深度:树的深度等于树的高度。
树的宽度:两个最长路径的叶子节点之间节点数。
树按照子节点的数量分为二叉树和多叉树。
二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),每个节点最多有2个子节点,分别称为根结点的左子树和右子树。
多叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空树)。每个节点有多个子节点。
分类 | 经典分类 |
---|---|
二叉树 | 平衡二叉树、二叉搜索树、AVL、堆、红黑树 |
多叉树 | 2-3树、B树、B+树 |
树按照子树是否有序分为有序树和无序树:
有序树:节点各子树从左到右有次序(不能互换)。
无序树:节点各子树从左到右无次序(能互换)。
满二叉树(Full Binary Tree):二叉树中的每个结点恰好有两个孩子结点且所有叶子结点都在同一层。
完全二叉树(Complete Binary Tree): 每层结点都完全填满,在最后一层上如果不是满的,则只缺少右边的若干结点。
(1)在非空二叉树上,第i层至多有
2
i
−
1
2^{i-1}
2i−1个结点。
(2)深度为k的二叉树至多有
2
k
−
1
2^k-1
2k−1个结点;
(3)对任何一个二叉树,若其叶子结点数为
n
0
n_0
n0,度为2的节点数为
n
2
n_2
n2,则
n
0
n_0
n0=
n
2
n_2
n2+1;
深度为k的满二叉树且有 2 k − 1 2^k-1 2k−1个结点。
(1)n个结点的完全二叉树的深度为
k
=
[
l
o
g
2
n
]
+
1
k=[log_2n]+1
k=[log2n]+1,这里[ ]符号表示向下取整
(2)若对一棵有n个结点的完全二叉树的结点按层(从第1层到第
[
l
o
g
2
n
]
+
1
[log_2n]+1
[log2n]+1层)序自左至右进行编号,则对于编号为i(1<= i <=n)的结点:
a)如果i = 1,则结点 i 是二叉树的根,无双亲结点;如果i > 1,则其双亲结点编号是 [i/2]。
b)如果2i > n:则结点i为叶子结点,无左孩子;否则,其左孩子结点编号是2i。
c)如果2i+1 > n:则结点i无右孩子;否则,其右孩子结点编号是2i+1。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。