码迷,mamicode.com
首页 > 其他好文 > 详细

2 树

时间:2018-11-19 16:17:33      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:com   特点   区别   target   color   多个   get   满二叉树   size   

一、普通树

树中的节点是一对多的关系。具有以下特点: 

1. n>0时,根节点是唯一的,不可能存在多个根节点。

2. 每个节点有零个至多个子节点;除了根节点外,每个节点有且仅有一个父节点。根节点没有父节点。

相关概念:

  1. 子树:除了根节点外,每个子节点都可以分为多个不相交的子树。(图二)
  2. 孩子与双亲:若一个结点有子树,那么该结点称为子树根的"双亲",子树的根是该结点的"孩子"。在图一中,B、H是A的孩子,A是B、H的双亲。
  3. 兄弟:具有相同双亲的节点互为兄弟,例如B与H互为兄弟。
  4. 节点的度:一个节点拥有子树的数目。例如A的度为2,B的度为1,C的度为3.
  5. 叶子:没有子树,也即是度为0的节点。
  6. 分支节点:除了叶子节点之外的节点,也即是度不为0的节点。
  7. 内部节点:除了根节点之外的分支节点。
  8. 层次:根节点为第一层,其余节点的层次等于其双亲节点的层次加1.
  9. 树的高度:也称为树的深度,树中节点的最大层次。
  10. 有序树:树中节点各子树之间的次序是重要的,不可以随意交换位置。
  11. 无序树:树种节点各子树之间的次序是不重要的。可以随意交换位置。
  12. 森林: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有:

  1. 如果i=1 ,则节点为根节点,没有双亲。
  2. 如果2 * i > n ,则节点i没有左孩子 ;否则其左孩子节点为2*i . (n为节点总数)
  3. 如果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 树

标签:com   特点   区别   target   color   多个   get   满二叉树   size   

原文地址:https://www.cnblogs.com/GuoXinxin/p/9981353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!