
树是一种典型的数据结构(逻辑结构),可以用来描述分支结构,属于一种分层、非线性结构。树的定义是递归的,因此树是一种递归的数据结构。每个结点有唯一的前驱结点,有一个或多个后继结点。(nnn个节点有n−1n-1n−1条边)
基本术语:
- 度:结点的子结点的个数;
- 树的度:树种最大的度数;
- 分支结点:度大于000的结点;
- 叶子结点:度为000的结点;
- 结点层次:根结点为第一层,往下递增;
- 结点高度:从叶结点开始自底向上逐层累加;
- 结点深度:从根结点自顶向下逐层累加;
- 树的高度(深度):树中结点的最大层数;
- 有序树:从左到右,子树有序;交换子结点位置树不同;
- 无序树:交换子结点后树是相同的;
- 路径:两个结点之间所经过的节点序列,不包含边;路径是自上而下的(树的分支是有向的:从双亲指向孩子);
- 路径长度:路径上经历的边的数量;
- 森林:m棵互不相交的树的集合;
性质:
-
树中的结点数=所有结点度数(等价于所有的非根结点数)+1+1+1
-
度为mmm的树中第iii层至多有:mi−1m^{i-1}mi−1个结点

3. 高度为hhh的mmm叉树至多有(mh−1)/(m−1)(m^h-1)/(m-1)(mh−1)/(m−1)个结点
- 具有nnn个结点的mmm叉树的最小高度为logm(n(m−1)+1)log_m(n(m-1)+1)logm(n(m−1)+1)(向上取整)

二叉树:
五种基本形态:空树、根节点、根节点-左子树、根节点-右子树、根节点-左子树-右子树
二叉树 vs 度为2的有序树:
- 二叉树可以为空,度为2的有序树至少有3个结点
- 二叉树孩子结点有左右之分,度为2的有序树的孩子结点次序是相对的(一个结点的时候,不区分左右)
特殊二叉树:
-
满二叉树:高度为hhh,含有2h−12^h-12h−1个结点(公式(mh−1)/(m−1)(m^h-1)/(m-1)(mh−1)/(m−1) ,m=2m=2m=2),每一层都有最多结点,最后一层全是叶子结点。结点iii:左孩子2i2i2i,右孩子2i+12i+12i+1;孩子结点iii存在,双亲编号为i/2i/2i/2 取整数

-
完全二叉树:高度为hhh,有nnn个结点的二叉树,当且仅当每个结点高度为hhh的满二叉树中编号1−n1-n1−n的结点一一对应(不能产生错位,即满二叉树的子集)。

- 若i≤n/2i\le n/2i≤n/2,则结点iii为分支结点,否则为叶子结点;(i=n/2i=n/2i=n/2为最后一个结点的双亲结点,比该结点的双亲结点小,则为分支结点(1、2、3、4、5),大则为叶子结点(7、8、9、10、11、12))
- 叶子结点只可能在层次最大的两层上出现。对于最大层次的叶子结点(8、9、10、11、12),都一此排在左边位置上。
- 度为111的结点若存在,则可能有一个,且是编号最大的分支结点(6),并且孩子结点一定是左结点。
- 二叉排序树:一棵二叉树,若树非空则具有性质——对任意结点存在左子树或又子树,则其左子树上左右关键字均小于该结点,右子树上所有结点的关键字均大于该结点。

-
平衡二叉树:树上任意结点(非根节点)的左子树和右子树的深度之差不超过111(蓝色)。

二叉树性质:
- 非空二叉树的叶子结点数等于度为222的结点数+1+1+1,即n0=n2+1n_0=n_2+1n0=n2+1。(n=n0+n1+n2n=n_0+n_1+n_2n=n0+n1+n2)
- 非空二叉树上第kkk层上至多有2(k−1)2^(k-1)2(k−1)个结点(k≥0k\geq0k≥0)
- 高度为hhh的二叉树至多有2h−12^h-12h−1个结点(h≥0h\geq0h≥0)


本文介绍了二叉树的基本概念,包括度、结点层次、高度等术语,并探讨了二叉树的五种基本形态,满二叉树、完全二叉树的特性。此外,还讲解了二叉排序树和平衡二叉树等特殊类型,以及二叉树的性质,如结点数与度的关系。

3236

被折叠的 条评论
为什么被折叠?



