树的应用 —— 树的简介

【什么是树】

树(Tree)是n (n ≥0)个节点的有限集合,当n = 0时,为空树;当n > 0 时,为非空树。

任意一棵非空树,都满足:

① 有且仅有一个被称为根的节点;
② 除根节点外的其余节点可分为m (m >0)个互不相交的有限集T 1 , T 2 , …, Tm ,其中每一个集合本身又是一棵树,被称为根的子树(SubTree)。

【举个栗子】

一棵树如下图所示。该树除了树根,还有3棵互不相交的子树:T1、T2 、T3 。

该定义是从集合论的角度给出的对树的递归定义,即把树的节点看作一个集合,除了树根,其余节点被分为m 个互不相交的集合,每一个集合又都是一棵树。

【树的相关术语】

  • 节点:节点包含数据元素及若干指向子树的分支信息。
  • 节点的度:节点拥有的子树个数。
  • 树的度:树中节点的最大度数。
  • 终端节点:度为0的节点,又被称为叶子。
  • 分支节点:度大于0的节点。除了叶子,都是分支节点。
  • 内部节点:除了树根和叶子,都是内部节点。

[举个栗子]

一棵树如下图所示,该树的度为3,其内部节点和终端节点均用虚线圈起来。

  • 节点的层次:从根到该节点的层数(根节点为第1层)。
  • 树的深度(或高度):所有节点中最大的层数。

[举个栗子]

一棵树如下图所示,根为第1层,根的子节点为第2层……该树的最大层次为4,因此树的深度为4。

  • 路径:树中两个节点之间所经过的节点序列。
  • 路径长度:两个节点之间路径上经过的边数。

[举个栗子]

一棵树如下图所示,D到A的路径为D-B-A,D到A的路径长度为2。由于树中没有环,因此树中任意两个节点之间的路径都是唯一的。

如果把树看作一个族谱,就成了一棵家族树,如下图所示。

  • 双亲、孩子:节点的子树的根被称为该节点的孩子,反之,该节点为其孩子的双亲。
  • 兄弟:双亲相同的节点互称兄弟。
  • 堂兄弟:双亲是兄弟的节点互称堂兄弟。
  • 祖先:即从该节点到树根经过的所有节点,被称为该节点的祖先。
  • 子孙:节点的子树中的所有节点都被称为该节点的子孙。

[举个栗子]

祖先和子孙的关系。如下图所示,D的祖先为B、A,A的子孙为B、C、D、E、F、G。

  • 有序树:节点的各子树从左至右有序,不能互换位置,如下图所示。

  • 无序树:节点的各子树可以互换位置
  • 森林:由m (m ≥0)棵不相交的树组成的集合。

[举个栗子]

上图中的树,删除树根A后,余下的3棵子树构成一个森林,如下图所示

树的应用 —— 树的简介相关推荐

  1. ML之DT(树模型):DT(树模型算法)算法的简介、代码定义、案例应用之详细攻略

    ML之DT(树模型):DT(树模型算法)算法的简介.代码定义.案例应用之详细攻略 目录 树模型 1.A brief history of forests 2.树模型的复杂度 3.树模型的目标函数

  2. Algorithm:树结构(二叉树/多路查找树/字典树)的简介、具体结构(FBT/CBT/BST/BBT/Heap/Huffman、B树/B+树/R树、字典树)及其运算(增删查/遍历/旋转)、代码实现

    Algorithm:树结构(二叉树/多路查找树/字典树)的简介.具体结构(FBT/CBT/BST/BBT/Heap/Huffman.B树/B+树/R树.字典树)及其运算(增删查/遍历/旋转).代码实现 ...

  3. [Other]B树 B+树 B*树 - 三大名树的基础简介

    B树 简述 对于B树一直有博文说B树就是二叉搜索树,其实这种理解是错误的. B树和B-树是同一种树,只不过英语中B-tree被中国人翻译成了B-树,让人以为B树和B-树是两种树. 实际上,两者就是同一 ...

  4. 数据库关于B树、B+树、LSM树的简介

    B树 在计算机科学中,B树(英语:B-tree)是一种自平衡的树,能够保持数据有序.这种数据结构能够让查找数据.顺序访问.插入数据及删除的动作,都在对数时间内完成.B树,概括来说是一个一般化的二叉查找 ...

  5. 关于B树的学习总结和B+树,B*树的简介

    概念 B树,英文是B-tree,是一种平衡多路树,这个不叫B减树,就是B树. B树是一种多路树.因为他的子节点不止2个,可以是多个. B树是一种平衡树.所谓平衡树,指的是他的左右两个子树的高度差小于等 ...

  6. 从B 树、B+ 树、B* 树谈到R 树

    作者:July.weedge.Frankie.编程艺术室出品. 说明:本文从B树开始谈起,然后论述B+树.B*树,最后谈到R 树.其中B树.B+树及B*树部分由weedge完成,R 树部分由Frank ...

  7. B树、B+树、B*树谈到R 树

    转自: https://blog.csdn.net/v_JULY_v/article/details/6530142 从B 树.B+ 树.B* 树谈到R 树 作者:July.weedge.Franki ...

  8. 从磁盘到B树到B+树

    出处:http://blog.csdn.net/v_JULY_v/article/details/6530142/. 第一节.B树.B+树.B*树 1.前言: 动态查找树主要有:二叉查找树(Binar ...

  9. 浅谈二叉查找树、AVL树、红黑树、B树、B+树的原理及应用

    一.二叉查找树 1.简介 二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质: 任意节点左子树不为空,则左子树的值均小于根节点的值. 任意节点右子树不为空,则右子树的值 ...

最新文章

  1. BCE或能成为BCH的一个侧链
  2. 今天收到IBM cat 测试
  3. 把Python的200个标准库分类整理了下,供参考
  4. J.U.C 提供的阻塞队列
  5. 算法竞赛入门经典(第二版) | 例题5-2 木块问题 (紫皮书牛啤!)(UVa101,The Blocks Problem)
  6. 深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析
  7. Laravel框架中的路由和控制器
  8. Oracle常用知识总结
  9. Nginx 反向代理+高可用
  10. 凸优化非系统学习之笔记5:内点法
  11. hive自定义函数过滤emoj表情符
  12. 顶级域名.tk申请与DNSPOD解析
  13. Oracle 数据仓库 ETL 技术之多表插入语句
  14. [译] 现代浏览器内部揭秘(第一部分)
  15. 如何将自己的代码上传到github
  16. matlab 矩阵处理,matlab矩阵处理
  17. [NOIP2003]侦探推理 详解+python实现
  18. 友善之臂中的mini2440 GPIO相关函数操作
  19. 大学生该做好的准备——听腾讯宣讲会有感
  20. 微软azure waf简介

热门文章

  1. 测试设计与黑盒测试方法(五)
  2. msvcp140.dll是什么?怎么解决电脑提示msvcp140.dll丢失的问题?(分享解决方法)
  3. linux网页用php文件怎么打开文件夹,如何使用浏览器访问linux本地文件
  4. 资深架构师教你一篇文看懂Hadoop
  5. 光伏逆变器源程序方案MPPT三相三电平光伏并网逆变器方案控制板28335源代码原理图PCB
  6. Enzo CYTO-ID自噬检测试剂盒特点作用机制
  7. 冻干巨噬细胞膜|脂质体-红细胞膜杂化膜包裹有机磷降解酶|叶酸修饰纳米红细胞膜靶向递药(科研试剂)
  8. Windows 1709版本中OneDrive导致绝大多数程序崩溃的解决方案
  9. 推荐几款比较好的图表组件
  10. C语言可以使用变量定义数组