2 树
Posted guoxinxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2 树相关的知识,希望对你有一定的参考价值。
一、普通树
树中的节点是一对多的关系。具有以下特点:
1. n>0时,根节点是唯一的,不可能存在多个根节点。
2. 每个节点有零个至多个子节点;除了根节点外,每个节点有且仅有一个父节点。根节点没有父节点。
相关概念:
- 子树:除了根节点外,每个子节点都可以分为多个不相交的子树。(图二)
- 孩子与双亲:若一个结点有子树,那么该结点称为子树根的"双亲",子树的根是该结点的"孩子"。在图一中,B、H是A的孩子,A是B、H的双亲。
- 兄弟:具有相同双亲的节点互为兄弟,例如B与H互为兄弟。
- 节点的度:一个节点拥有子树的数目。例如A的度为2,B的度为1,C的度为3.
- 叶子:没有子树,也即是度为0的节点。
- 分支节点:除了叶子节点之外的节点,也即是度不为0的节点。
- 内部节点:除了根节点之外的分支节点。
- 层次:根节点为第一层,其余节点的层次等于其双亲节点的层次加1.
- 树的高度:也称为树的深度,树中节点的最大层次。
- 有序树:树中节点各子树之间的次序是重要的,不可以随意交换位置。
- 无序树:树种节点各子树之间的次序是不重要的。可以随意交换位置。
- 森林:0或多棵互不相交的树的集合。例如图二中的两棵树为森林。
参考:https://www.cnblogs.com/QG-whz/p/5168620.html
性质:
「1」树的结点无左、右之分,最大度数没有限制。
「2」树的结点个数至少为1,而二叉树的结点个数可以为0。
二、二叉树
二叉树或者为空集,或者由一个根节点和两棵互不相交的、分别称为左子树和右子树的二叉树组成。从定义可以看出一棵二叉树:
1. 二叉树是有序树,区分左子树与右子树,不可以随意交换子树位置。
2. 一个节点的子树数量取值范围为0,1,2。0代表该节点是叶子节点,1代表该节点只有左子树或只有右子树,2代表该节点有左右子树。
参考:https://www.cnblogs.com/QG-whz/p/5168620.html
性质:
「1」二叉树的子树有左右之分,次序不能颠倒。
「2」深度为k的二叉树至多有2^k-1个结点;(等比数列1+2+4+…+2^(k-1) = 2^k-1)。
「3」对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0 = n2 + 1。
证明:二叉树节点度数最大为2,则 : n = n0 + n1 + n2 (等式一)
从孩子个数角度出发: 度为0的节点没有孩子, 度为1的节点没有1个孩子,度为2的节点有2个孩子,孩子总数为 n00 + n11 +n2 2 = n1+2n2;树的所有节点中,只有根不是任何节点的孩 子,因此有 n -1 = n1 + 2* n2 ,即 n = n1 + 2* n2 + 1. (等式二)
由等式一等式而可以推出 n0 = n2 +1
「4」具有n个节点的完全二叉树的高度为至少为log2(n+1)
证明:高度为h的二叉树最多有2{h}–1个结点。反之,对于包含n个节点的二叉树的高度至少为log2(n+1)。
「5」如果对一棵有n个节点的完全二叉树的节点按层序编号(从第一层开始到最下一层,每一层从左到右编号),对任一节点i有:
- 如果i=1 ,则节点为根节点,没有双亲。
- 如果2 * i > n ,则节点i没有左孩子 ;否则其左孩子节点为2*i . (n为节点总数)
- 如果2 * i+1>n ,则节点i没有右孩子;否则其右孩子节点为2*1+1
满二叉树:
一颗深度为k且有2^k-1个结点的二叉树称为满二叉树。 即:除叶子结点外的所有结点均有两个子结点。节点数达到最大值。所有叶子结点必须在同一层上。
节点数和深度的关系 n=2^k-1
性质:
「1」如果一颗树深度为h,最大层数为k,且深度与最大层数相同,即k=h;
「2」第k层的结点数是: 2^(k-1)
「3」总节点数一定是奇数。
「4」树高:h=log2(n+1)。
参考:https://www.cnblogs.com/myjavascript/articles/4092746.html
完全二叉树:
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边(在最后一层上只缺少右边的若干结点),这就是完全二叉树。
节点数的范围是2^(k-1)-1<N<2^k-1
与满二叉树的区别是,他的最后一行可能不是完整的,但绝对是右方的连续部分缺失。
参考:https://www.cnblogs.com/mapc/articles/4842256.html
性质:
「1」 树高h=log2n + 1。(???)
以上是关于2 树的主要内容,如果未能解决你的问题,请参考以下文章