欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 二叉树的基本概念(下)

二叉树的基本概念(下)

2025/2/25 2:08:03 来源:https://blog.csdn.net/weixin_74300052/article/details/142531566  浏览:    关键词:二叉树的基本概念(下)

文章目录

  • 🍊自我介绍
  • 🍊二叉树的分类
    • 满二叉树
    • 完全二叉树
  • 🍊二叉树的存储
    • 顺序存储[完全二叉树]
    • 链式存储


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的内容。


🍊二叉树的分类

满二叉树

在一颗二叉树中,除了最后一层之外,如果所有的分支节点都存在左子树和右子树,并且所有的叶子节点都在同一层上,这样的二叉树,我们称之为满二叉树。
在这里插入图片描述
满二叉树的特点:
1.叶子节点只会出现在最下面一层。
2.非叶子节点的节点,拥有子树的个数一定为2。
3.在同样深度的二叉树中,满二叉树的节点个数最多。

完全二叉树

对于一颗具有n个节点的二叉树按照层数进行编号,如果编号为i(1 <= i <= n)的结点与同样深度为满二叉树节点编号为i的结点在二叉树中的位置完全相同,则这棵树,我们称之为完全二叉树。

注意:结点编号规则从上到下,从左到右.
在这里插入图片描述
我们来分析一下完全二叉树的相关规律:

节点左孩子右孩子
123
245
367
489
510

根据表格的值我们思考一下,如果定义节点为i ,那么左孩子和右孩子存在的条件是什么?

重点:

对于完全二叉树,共有n个节点,编号为i(i >= 1)的节点的特点:
左孩子存在的条件:2 * i <= n, 编号为2 * i
右孩子存在的条件: 2 * i + 1 <= n,编号为2 * i + 1

🍊二叉树的存储

顺序存储[完全二叉树]

顺序存储的话,若不是完全二叉树存储就没有意义。
假设下面有一棵树,我们如何把它存到数组中的?
在这里插入图片描述
思路:先把它转换成完全二叉树,然后再编号
在这里插入图片描述

因此,<>我们顺序存储规定无论是何种树,我们都会转换成完全二叉树。然后一层一层的从左给我们的二叉树进行编号,然后存储在数组中。及如下图。
在这里插入图片描述
我们发现这样顺序存储树的方式非常的浪费空间,那么我们该如何解决这个问题呢?这个需要运用链式存储方式进行存储。

链式存储

链式存储:定义结点保存左孩子和右孩子的地址

在这里插入图片描述
链式存储定义代码:

typedef char data_ttypedef struct bnode
{data_t data;struct bnode *lchild;struct bnode *rchild;
}bitree_t;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词