程序员怎能不会二叉树系列(一)简单了解二叉树

640?wx_fmt=png

本文为原创资源,欢迎分享,转载。

        本来想直接接着算法系列写选择排序的升级版堆排序的,但是写到完全二叉树这一块,我估计很多初学的朋友一脸懵圈,可能脑海中有二叉树这个东西的概念,知道是一种数据结构,但实际上是什么,却不知道,那么我们就来讲一讲二叉树。二叉树系列会后于基础算法系列更新

二叉树:

        二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”。二叉树常被用于实现二叉查找树二叉堆。他的结构是这个样子的:

640?wx_fmt=jpeg

        A为二叉树的根节点,B,E为A的子节点,CD为B的子节点,F为E的子节点。看起来是不是很像一颗倒着的大树啊!!每个节点分成两个枝桠,因而叫二叉树

二叉树又分为满二叉树完全二叉树平衡二叉树(AVL树)。

平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构;在本文中就不多介绍了,后续有机会我会单独开一章进行讲解。

满二叉树与完全二叉树:

一棵深度为k,且有2^k-1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点,则此二叉树为完全二叉树。具有n个结点的完全二叉树的深度为floor(log2n)+1。深度为k的完全二叉树,至少有2k-1个叶子结点,至多有2k-1个结点。见下图:

640?wx_fmt=jpeg

可能有些初学者看到上面的介绍一脸蒙圈,那么我用通俗的话语总结一下:

满二叉树就是除了叶子节点(最底下一层)没有任何子节点之外,其他的节点每一个都需要有两个子节点。

完全二叉树就是叶子节点(最底下一层)的节点必须是从左边开始连着的,不能断掉,而且去掉最后一层,要是一颗满二叉树,两个条件缺一不可。

二叉树简单介绍就到这了,我会尽力写得让初学者能看懂,而且篇幅也不会太长,方便各位读者在碎片时间能够刷刷我的文章,下一章我们讲讲二叉树的几种遍历方式。

640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=gif

本篇会收录在满满干货-原创java基础系列分类中,欢迎转载,分享!!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

carl的分享笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值