【数据结构】01_二叉树到底是个什么玩意儿?

本文介绍了二叉树的基本概念,包括定义、斜树、完全二叉树和满二叉树的特点。二叉树每个节点最多有两个分支,左子节点小于父节点,右子节点大于父节点。完全二叉树的非底层节点都是满的,最下层叶子节点不单独在右侧,而满二叉树所有叶子节点都在最后一层。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【数据结构】01_二叉树到底是个什么玩意儿?

定义

在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结 构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒。 二叉树的第 i 层至多拥有 2 i − 1 2^{i-1} 2i1个节点;深度为 k 的二叉树至多总共有 2 k − 1 2^k-1 2k1个节点(定义根节点所在深度 k 0 = 0 k_0 =0 k0=0,而总计拥有节点数符合的,称为“满二叉树”;深度为 kn 个节点的二叉树,当且仅当其中的每一节点,都可以和同样深度 k 的满二叉树,序号为 1n 的节点一对一对应时,称为完全二叉树。对任何一棵非空的二叉树 T ,如果其叶片(终端节点)数为 n 0 n_0 n0,分支度为 2 的节点数为 n 2 n_{2} n2,则 n 0 = n 2 + 1 {n_{0}=n_{2}+1} n0=n2+1。与普通树不同,普通树的节点个数至少为 1 ,而二叉树的节点个数可以为 0 ;普通树节点的最大分支度没有限制,而二叉树节点的最大分支度为 2 ;普通树的节点无左、右次序之分,而二叉树的节点有左、右次序之分。二叉树通常作为数据结构应用,典型用法是对节点定义一个标记函数,将一些值与每个节点相关系。这样标记的二叉树就可以实现二叉搜索树和二叉堆,并应用于高效率的搜索和排序。

看完这个定义是不是还是一脸懵逼,其实我们只要记住其中的几点:
1.二查树是棵树,是树就可能会有分支
2.二叉树一个结点最多只有两个分支
3.二叉树的的左分支结点小于父结点,右分支结点大于大于父结点
好了,这几点应该能记得住吧。

形式

斜树

斜树,顾名思义看起来它是斜的。所有的结点都只有左子树,或者所有的结点都只有右子树。有图为证,请看下图:
在这里插入图片描述

完全二叉树

完全二叉树,从命名上看像是挺完美的一棵二叉树,但确实也是挺完美的。那么它到底完美在哪里呢,请看下图:
在这里插入图片描述
它具备了几个特质:
1.非倒数第一层的结点都是满的(包含了两个分支结点)
2.最下层叶子结点不会单独存在于右侧
3.同样结点数量的二叉树,完全二叉树深度最小
上面又是说的什么意思呢,结合图示我们再理解一遍
在这里插入图片描述

满二叉树

满二叉树,从命名上看已经满了,不能再多了。满二叉树也是完全二叉树,所有的叶子结点都在最后一层。话不多说,直接看图理解:
在这里插入图片描述

总结

二叉树是最容易理解的树,本文也只是简单通过动图和说明简单介绍二叉树是什么及一些特性。后续会继续补充使用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值