网站首页 > 技术文章 正文
一、树的相关概念
在学习各种树的算法以及应用时,让我们先来学习一下树的相关概念。
?1.1 结点的度
在树中,结点的度表示结点拥有的子树的数目,即结点有几颗子树,该结点就有几度。
下面来看图理解下。
在上图中,结点 A 有两棵子树,分别是 B 和 C,所以 A 的度为 2,B 有三棵子树,所以 B 的度为 3,同理,C 的度为 1,D 的度为 0。
?1.2 叶子/终端结点
叶子结点是指度为 0 的结点,也称终端结点。
下面来看一个例子,如下所示:
上图中,红色结点 D、E、F、G 都是叶子结点/终端结点,因为它们都没有子树,度为 0。
?1.3 非终端结点/分支结点
非终端结点是指度非 0 的结点,又称分支结点。
下面来看图理解下,如下所示:
在上图中,红色结点 A 、B、C 都是分支结点,因为它们的度都是大于 0 的。
?1.4 分支
分支是指父子结点之前的连接,二叉树最多有两个分支,这两个分支是父节点分别与左孩子和右孩子各有一个分支。来看图理解下,以二叉树为例。
在上图中,分支都被标识了出来。
?1.5 路径
路径是指树中任意一个结点到另外一个结点之前的分支组成的链路。
在上图中,标出了两条路径,分别是红色:A-B-D,紫色:G-C-F。
?1.6 路径长度
路径长度是指在路径上的分支数目。
经常会有题目涉及求两个结点之前的路径长度。
?1.7 树的路径长度
从树根到每一个结点的路径长度的总和。
上图中,根结点 A 到其它节点 B、C、D、E、F、G的路径长度分别为:1 、1、2、2、2、2,所以树的总长度为 :1 + 1 + 2 + 2 + 2 + 2 = 10。
再来看一个例子,如下所示:
在上图中,根结点 A 到其它结点 B、C、D 的路径长度分别为:1、1、2,所以树的路径长度为:4。
?1.8 树的带权路径长度
树的带权路径长度是指树中所有叶子结点的带权路径长度之和,使用如下公式计算:
其中,
为叶结点 k 的权值,
为叶结点 l 的路径长度。
来看一个实例,如下所示:
在上图中,叶结点分别为:D、E、F、G,其权值分别为:2、3、3、4,路径长度都为 2,所以树的带权路径长度:
- 上一篇: Python超全干货:「二叉树」基础知识大全
- 下一篇: 周四学习卡——熵权法 熵权法怎么用
猜你喜欢
- 2024-11-06 Python超全干货:「二叉树」基础知识大全
- 2024-11-06 建议收藏!便于巩固基础,二叉树各种遍历方式我都帮你总结了
- 2024-11-06 python算法基础之分支界限法 python通过什么来判断操作是否在分支结构中
- 2024-11-06 数据结构错题收录(十九) 数据结构题集解析
- 2024-11-06 计算机二级公共知识第一章 数据结构与算法
- 2024-11-06 计算机专业基础综合历年真题试卷汇编
- 2024-11-06 常见的网络拓扑结构,你都看懂吗 常见网络拓扑结构有哪几种?
- 2024-11-06 设计模式21-Interpreter(解析器)模式-四则运算
- 2024-11-06 面试官:为什么选择B+树作为数据库索引结构?谈谈你的理解
- 2024-11-06 流程引擎:如何设计一个流程引擎之合流节点(3)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)