树(配图详解)

1.树的定义

  树是n(n>=0)个结点的有限集。

1.1 空树

  当n=0时,结点数为0的树为空树。

在这里插入图片描述

1.2非空树

  1.有且仅有一个根结点。
  2.没有后继的结点称为“叶子结点”(或终端结点)。
  3.有后继的结点称为“分支结点”(或非终端结点)。

在这里插入图片描述
  在这颗树中,C,D,E,F就是叶子结点。

  树的根结点没有前驱,除根结点以外的所有结点有且只要一个前驱。

  树中所有结点都可以有零个或多个后继。

2.树的基本术语

在这里插入图片描述

2.1双亲结点(通俗点,考虑家谱)

  以K结点为列,K 的上一个结点是E,那么E结点就是K的父结点(双亲结点)。

2.2祖先结点

  以K结点为列,那么B结点就是K的祖先结点。

2.3兄弟结点

  以K结点为列,那么J结点就是K的兄弟结点。

2.4堂兄弟结点

  以B结点为列,那么C结点就是B的堂兄弟结点。

2.5孩子结点

  以B结点为列,那么E结点就是B的孩子结点。

2.6子孙结点

  以B结点为列,那么K结点就是B的子孙结点。

2.7结点的度

  树中一个结点的孩子个数称为该结点的度。
例如:E结点有两个孩子,那么E结点的度为2.

2.8树的度

  树中结点的最大的度数称为树的度。

例如:A结点有两个孩子,那么A结点的度为3.同时它也是树中最大的结点度数。那么树的度为3.

2.9结点的深度

  从上往下,K结点的深度为4.

2.10结点高度

  从下往上,K结点的高度为1.

2.11有序树和无序树

  1.有序树:树中的结点的各个子树从左到右是有次序的,不能交换。

  2.无序树:可以交换结点则为无序树。

2.12路径和路径长度

  1.路径:树中两个结点之间的路径是由这两个结点之间所经过的结点序列构成的,而路径长度是路径上所经过的变的个数。
  2.路径只能从上往下。

2.13森林

  森林就是m(m>=0)课互不相交的树的集合。m^^1

3.树的性质

1.树中的结点数等于所有结点的度数之和加1.
(结点数=总度数+1)
2.度为m层的数中,第i层上至多有结点数如下。
m i − 1 m^{i-1} mi1
3.高度h的m叉树至多有的结点数
( m i − 1 ) / ( m − 1 ) (m^{i-1})/(m-1) (mi1)/(m1)

4.具有n个结点的m叉树的最小的高度为

l o g m ( n ( m − 1 ) + 1 ) log_m(n(m-1)+1) logm(n(m1)+1)

推理过程:高度最小的情况–所有的结点都要m个孩子。
( 前 h − 1 层最多结点 ) ( m h − 1 − 1 ) / ( m − 1 ) < n < = ( m h − 1 ) / ( m − 1 ) ( 前 h 层最多结点 ) (前h-1层最多结点)(m^{h-1}-1)/(m-1)<n<=(m^{h}-1)/(m-1)(前h层最多结点) (h1层最多结点)(mh11)/(m1)<n<=(mh1)/(m1)(h层最多结点)

m h − 1 − 1 < n ( m − 1 ) < = m h − 1 m^{h-1}-1<n(m-1)<=m^{h}-1 mh11<n(m1)<=mh1

m h − 1 < n ( m − 1 ) + 1 < = m h m^{h-1}<n(m-1)+1<=m^{h} mh1<n(m1)+1<=mh

所以推理出:
h − 1 < l o g m ( n ( m − 1 ) + 1 ) < = n h-1<log_m(n(m-1)+1)<=n h1<logm(n(m1)+1)<=n

在这里插入图片描述

觉得我回答有用的话,记得点个关注哟!谢谢支持!

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 00:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 00:26:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 00:26:04       82 阅读
  4. Python语言-面向对象

    2024-03-10 00:26:04       91 阅读

热门阅读

  1. 安全防范之警惕钓鱼邮件

    2024-03-10 00:26:04       47 阅读
  2. 2024年,程序员如何破局?

    2024-03-10 00:26:04       45 阅读
  3. SQL基础知识复习及示例语句

    2024-03-10 00:26:04       41 阅读
  4. vue3+vite

    2024-03-10 00:26:04       34 阅读
  5. python深拷贝和浅拷贝

    2024-03-10 00:26:04       38 阅读
  6. 如何快速的搭建一个小程序

    2024-03-10 00:26:04       55 阅读
  7. unity中摄像机跟随

    2024-03-10 00:26:04       44 阅读
  8. Error running ‘Attach debug to process‘

    2024-03-10 00:26:04       42 阅读
  9. BDD测试框架Cucumber学习

    2024-03-10 00:26:04       38 阅读
  10. C# 的一些好用的语法糖介绍

    2024-03-10 00:26:04       41 阅读
  11. linux脚本练习2-文件压缩删除

    2024-03-10 00:26:04       43 阅读
  12. 铭文资产是比特币生态破局者 or 短暂热点?

    2024-03-10 00:26:04       36 阅读