news 2026/5/12 6:49:49

二叉树理论介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二叉树理论介绍

二叉树的种类

  • 满二叉树
  • 完全二叉树

满二叉树

满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。

image.png


这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。

完全二叉树

什么是完全二叉树?

完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^h -1 个节点。

大家要自己看完全二叉树的定义,很多同学对完全二叉树其实不是真正的懂了。

我来举一个典型的例子如题:

image.png

相信不少同学最后一个二叉树是不是完全二叉树都中招了。

之前我们刚刚讲过优先级队列其实是一个堆,堆就是一棵完全二叉树,同时保证父子节点的顺序关系。

二叉搜索树

前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。

  • 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  • 它的左、右子树也分别为二叉排序树

下面这两棵树都是搜索树

image.png

平衡二叉搜索树

平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
如图:

image.png

最后一棵 不是平衡二叉树,因为它的左右两个子树的高度差的绝对值超过了1。

C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增删操作时间时间复杂度是logn,注意我这里没有说unordered_map、unordered_set,unordered_map、unordered_map底层实现是哈希表。

所以大家使用自己熟悉的编程语言写算法,一定要知道常用的容器底层都是如何实现的,最基本的就是map、set等等,否则自己写的代码,自己对其性能分析都分析不清楚!

二叉树的存储方式

二叉树可以链式存储,也可以顺序存储。

那么链式存储方式就用指针, 顺序存储的方式就是用数组。

顾名思义就是顺序存储的元素在内存是连续分布的,而链式存储则是通过指针把分布在散落在各个地址的节点串联一起。

链式存储如图:

image.png

链式存储是大家很熟悉的一种方式,那么我们来看看如何顺序存储呢?

其实就是用数组来存储二叉树,顺序存储的方式如图:

image.png

用数组来存储二叉树如何遍历的呢?

如果父节点的数组下表是i,那么它的左孩子就是i * 2 + 1,右孩子就是 i * 2 + 2。

但是用链式表示的二叉树,更有利于我们理解,所以一般我们都是用链式存储二叉树。

所以大家要了解,用数组依然可以表示二叉树。

二叉树的遍历方式

关于二叉树的遍历方式,要知道二叉树遍历的基本方式都有哪些。

一些同学用做了很多二叉树的题目了,可能知道前中后序遍历,可能知道层序遍历,但是却没有框架。

我这里把二叉树的几种遍历方式列出来,大家就可以一一串起来了。

二叉树主要有两种遍历方式:

  • 深度优先遍历:先往深走,遇到叶子节点再往回走。(可以理解为栈,使用递归)
  • 广度优先遍历:一层一层的去遍历。(队列)

这两种遍历是图论中最基本的两种遍历方式,后面在介绍图论的时候 还会介绍到。

那么从深度优先遍历和广度优先遍历进一步拓展,才有如下遍历方式:

  • 深度优先遍历
    • 前序遍历(递归法,迭代法)
    • 中序遍历(递归法,迭代法)
    • 后序遍历(递归法,迭代法)
  • 广度优先遍历
    • 层次遍历(迭代法)

在深度优先遍历中:有三个顺序,前中后序遍历, 有同学总分不清这三个顺序,经常搞混,我这里教大家一个技巧。

这里前中后,其实指的就是中间节点的遍历顺序,只要大家记住 前中后序指的就是中间节点的位置就可以了。

看如下中间节点的顺序,就可以发现,中间节点的顺序就是所谓的遍历方式

  • 前序遍历:中左右
  • 中序遍历:左中右
  • 后序遍历:左右中
    大家可以对着如下图,看看自己理解的前后中序有没有问题。


    image.png

    最后再说一说二叉树中深度优先和广度优先遍历实现方式,我们做二叉树相关题目,经常会使用递归的方式来实现深度优先遍历,也就是实现前中后序遍历,使用递归是比较方便的。

之前我们讲栈与队列的时候,就说过栈其实就是递归的一种是实现结构,也就说前中后序遍历的逻辑其实都是可以借助栈使用非递归的方式来实现的。

而广度优先遍历的实现一般使用队列来实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结构,才能一层一层的来遍历二叉树。

这里其实我们又了解了栈与队列的一个应用场景了。

具体的实现我们后面都会讲的,这里大家先要清楚这些理论基础。

二叉树的定义

刚刚我们说过了二叉树有两种存储方式顺序存储,和链式存储,顺序存储就是用数组来存,这个定义没啥可说的,我们来看看链式存储的二叉树节点的定义方式。

C++代码如下:

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。


因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

四、AI大模型商业化落地方案

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 3:12:50

单部六层电梯程序开发记录:基于西门子1200与博图V15.1

.单部六层电梯程序.基于西门子1200,博图V15.1版本 单部六层电梯清单:plc程序HMI组态画面wincc编写电气接线图硬件框架图io表 功能:顺向接梯、逆向接梯、屏蔽开关实现指定楼层直上直下、超时自动返回指定楼层、 开关控制长时间开门、超重功能&…

作者头像 李华
网站建设 2026/5/12 2:34:20

自动化测试革命:Open-AutoGLM在真实场景中的6大应用案例

第一章:自动化测试革命:Open-AutoGLM的崛起在软件质量保障领域,自动化测试正经历一场深刻的变革。传统测试框架依赖预设脚本与规则,难以应对复杂多变的应用场景。而 Open-AutoGLM 的出现,首次将大型语言模型&#xff0…

作者头像 李华
网站建设 2026/5/9 10:31:39

GPT-SoVITS训练数据预处理技巧:提升音质的关键步骤

GPT-SoVITS训练数据预处理技巧:提升音质的关键步骤 在语音合成领域,一个清晰、自然、富有表现力的“声音”往往决定了用户体验的上限。而今天,哪怕你只有一分钟的录音,也能通过像 GPT-SoVITS 这样的先进模型,克隆出高度…

作者头像 李华
网站建设 2026/5/9 13:21:18

学长亲荐10个AI论文工具,专科生轻松搞定毕业论文!

学长亲荐10个AI论文工具,专科生轻松搞定毕业论文! AI 工具助力论文写作,专科生也能轻松应对 对于很多专科生来说,毕业论文仿佛是一道难以逾越的门槛。从选题、查找资料到撰写、修改,每一步都充满挑战。而如今&#xff…

作者头像 李华
网站建设 2026/5/10 6:22:47

Open-AutoGLM核心机制揭秘:5个指标决定你的模型是否达标

第一章:Open-AutoGLM核心机制揭秘:5个指标决定你的模型是否达标Open-AutoGLM 作为新一代开源自动语言生成框架,其性能评估不再依赖单一准确率指标,而是通过五个关键维度综合判定模型是否达到生产级标准。这些指标共同构成模型能力…

作者头像 李华
网站建设 2026/5/10 3:39:42

风电场参与下的市场竞价策略:探索电力市场新玩法

风电场参与下的市场竞价策略 在当今能源转型的大浪潮下,风电场作为清洁能源的重要力量,正逐渐在电力市场中崭露头角。然而,风电场由于其发电的间歇性和不确定性,在参与市场竞价时面临着独特的挑战和机遇。今天咱们就来深入探讨下风…

作者头像 李华