二叉树详解

我们首先应该了解的就是树这种数据结构属于非线性结构,然后存储的数据具有一对多的关系,这是最最基本的概念了。

几个概念名词要分清

然后我们需要清楚关于树的一个关键性的概念名词。

节点:什么是节点呢?这个节点也有叫做结点,这两个应该没有区别吧,我看过不少文章,有的叫做节点,有的叫做结点,我觉得节点更加合适,因为我们喜欢使用Node来定义一个节点,Node一般翻译过来就是节点二字。

那啥是节点:简单来说,树结构存储的每一个元素都叫做一个节点。

也就是在树这种结构中存储的元素都叫做节点,然后根据有些节点的特殊位置可能会有不同的叫法。

比如根节点,根节点只有一个,最上面的那个节点,还有父节点子节点兄弟节点,这些其实都不难理解,属于树的基础知识,不了解的可以看这篇文章,有详细的介绍:来吧!一文彻底搞定数据结构之树!

除了节点,还有子树和空树的概念,以及节点的度和层次,树的高度或者说是深度,这些都可以在上面提到的这篇文章中找到,这里简单说下节点的度和层次,先看一个图:

在这里插入图片描述

度:对于一个节点而言,拥有的子树数称为节点的度(Degree)。比如,图中根节点 A 下分出了 3 个子树(BCD),所以,结点 A 的度为 3。

树的度:一棵树的度是树内各节点的度的最大值。图 中,各个节点的度的最大值为 3,所以,整棵树的度的值是 3。

另外再提下树的高度或者深度:

一棵树的深度(高度)是树中节点所在的最大的层次。注意这里说的是一个树的,而不是某个节点的,因为对于一个树而言,高度从下往上和深度从上往下都是一样的,但是对于某个节点而言高度和深度就不一样了

二叉树的特点

任何一种数据机构都有它们自己的特点,这是区别于其他数据结构,以及为什么是这样的重点所在,正式由于这些特点才能规定它叫二叉树,而不是什么三叉树或者四叉树。

对于二叉树来说,我们从名字上就能知道,这玩意一定跟二有关,两个叉,在树这种结构中,叉其实就是节点,那么二叉,说白了不说就是两个节点嘛

二叉树的每个节点的度最大为2

还记得什么是度吧,就是每个节点拥有的子树数,说白了,就是一个节点下有几个子节点,对二叉树来说,最多有俩,最多拥有两个子树,这个其实好理解,就是一个节点,最多有两个分叉,所以这里你要知道这个怎么回事

在这里插入图片描述
看这个图,A有三个叉,E有两个叉。

然后我们继续说二叉树的另外一个特点:左右节点是有顺序的,这个啥意思嘞,就是对于二叉树来说,它的左右节点是有序的,不同顺序就不是同一个二叉树。我们继续看上面的图,假如以E为根节点,K和L为叶子节点是一颗二叉树,那么现在K在左,L在右,但是如果换换位置,K在右,L在左的话那就成了一个新的二叉树了。

这也是二叉树的一个特点。

然后依据上面这个特点,我们自然能够知道,即时某个节点只有一个子树,那么也得区分左右,不然就是两个不同的二叉树。

二叉树的性质

借助一个二叉树的图来看:

图片来漫画算法
看这么一个二叉树,这里一共有三层,知道这个怎么分层的吧,然后它有这么一条性质:

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值