文章目录

  • 什么是树结构?
  • 简介
  • 为什么要使用树结构?
  • 树的基本概念
  • 根节点
  • 双亲节点
  • 路径
  • 节点的度
  • 节点的权
  • 叶子节点
  • 子树
  • 树的高度
  • 森林


什么是树结构?

树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样

简介

树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述

比如下图就是一颗树结构,这张图倒过来看就会跟树一样

树形组织架构维护 插件 树组织结构_树形组织架构维护 插件

为什么要使用树结构?

  • 查找性能好
  • 插入性能好

树的基本概念

根节点

这一个就是树的一个根节点,看树结构的时候一般都是从上往下看的

树形组织架构维护 插件 树组织结构_树形组织架构维护 插件_02

双亲节点

树形组织架构维护 插件 树组织结构_子节点_03


比如这样一幅图,A 是 C 和 D 的双亲节点,C 和 D 是 A 的子节点。同样地,B 是 E 和 F 的双亲节点,E 和 F 是 B 的子节点,下面的也是一样,以此类推

路径

树形组织架构维护 插件 树组织结构_树结构_04


比如说我们查找 C 的话,那路径就是 A ——> B ——> C

节点的度

节点的度就是说看下这个节点有多少个子节点或者说子树,对于一个节点有多少个子节点我们就认为它的度是多少

树形组织架构维护 插件 树组织结构_树结构_05


在这幅图中

  • 对于 C 来说的话它的度就是 0,因为它没有子节点
  • 对于 A 节点来说它的度就是 3,因为 A 节点有三个子节点,分别是 B C D
  • 对于 B 节点来说它的度就是 2,因为 B 节点有两个子节点,分别是 E F
  • 对于 D 节点来说它的度也是 2,因为 D 节点有两个子节点,分别是 G H

以此类推

节点的权

节点的权指的是我们往这个节点上面赋予的数值内容,简单地说就是这个节点里面存的数字

树形组织架构维护 插件 树组织结构_子树_06


比如黄色框住的权是1,蓝色框住的权是2,灰色框住的权是3

叶子节点

叶子节点就是没有子节点的节点

树形组织架构维护 插件 树组织结构_子树_07


比如这幅图,圈出来的都是叶子节点,因为他们没有子节点。就好比树的叶子一样,叶子怎么长出叶子呢对吧

子树

树形组织架构维护 插件 树组织结构_树形组织架构维护 插件_08


比如这幅图,把黄色一块单独拿出来也可以作为一棵树,但是这黄色部分这棵树本身是在这一整棵树里边的,所以称为子树

树形组织架构维护 插件 树组织结构_子树_09


比如这幅图里边的树就可以划分为四层

树的高度

树的高度也就是树的最大层数

树形组织架构维护 插件 树组织结构_树结构_10

森林

比如我们把上面图中的树拆分,如下图所示

树形组织架构维护 插件 树组织结构_子节点_11


拆分之后就变成三棵树了,那么这三棵树就可以称为森林