百科知识

二叉树的度和节点公式

二叉树的度和节点公式

树结构是现实世界层次关系的抽象表达。将线性结构的数据转化为树型结构,特别是二叉树结构,能够结合顺序存储和链式存储的优点,在O(logn)时间内完成增、删、改、查等操作。

不论是顺序存储还是链式存储,线性表都有其各自的优缺点。

顺序存储能够在O(1)时间内找到特定次序的元素,但是插入和删除元素需要移动大量数据,因此时间复杂度为O(n)。

链式存储则可以在O(1)时间内完成插入和删除操作,因为只需要更改节点指针,而找到特定次序的元素则需要从链表头部开始遍历,时间复杂度为O(n)。

通过将数据成堆(一种数量关系有规律的特殊二叉树),我们可以应用堆排序,而堆也是优先队列的基础。在STL(Standard Template Library)中,堆通常以vector为底层结构。

为了数据检索,我们还将数据成平衡二叉搜索树。

红黑树是一种特殊的平衡二叉搜索树,它是STL中的map和set的基础。

哈夫曼树是另一种特别构建的二叉树。

接下来详细介绍一下树这种数据结构:

1. 树形结构类似于倒立的树,有唯一的根节点,根节点可以衍生出多个分支,每个分支也可以进一步发出分支,这些分支之间不会有交集。类似的,数组是数组的数组,树也是树的树,二叉树也是二叉树的二叉树,这具有递归性质。

树的定义是:n(n≥0)个节点的有限集合,当n=0时,为空树;n>0时,为非空树。任何一棵非空树都可以满足以下两个条件:1)有且仅有一个根节点;2)除根节点以外的其余节点可以分为m(m>0)个互不相交的子集,每个子集本身又是一棵树,被称为根的子树。

1.1 与树相关的术语包括:

节点:包含数据元素及指向子树的分支信息。

节点的度:节点拥有的子树个数。

树的度:树中节点的最大度数。

终端节点或叶子:度为0的节点。

分支节点:度大于0的节点。除根节点和叶子节点都是分支节点。

内部节点:除根和叶子节点以外的所有节点。

节点的层次:从根到该节点的路径上的节点数(根节点为第1层)。

树的深度或高度:所有节点中的最大层次。

路径:树中两个节点之间所经过的节点序列。

路径长度:两节点之间路径上的边数。在树中,任意两个节点之间的路径是唯一的。

如果把树看作族谱,就形成了家族树。其中还有双亲、孩子、兄弟、堂兄弟、祖先、子孙等术语来描述节点之间的关系。有序树和无序树则描述了子树的顺序性。森林则由多棵不相交的树组成。


二叉树的度和节点公式

你可能也会喜欢...