当前位置: 首页 > news >正文

——二叉树

二叉树种类

二叉树有两种主要的形式:满二叉树和完全二叉树。

满二叉树

如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。
在这里插入图片描述

完全二叉树

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

在这里插入图片描述
堆就是一棵完全二叉树,同时保证父子节点的顺序关系。

二叉搜索树

二叉搜索树是一个有序树。

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

在这里插入图片描述

平衡二叉搜索树

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

二叉树的存储方式

二叉树可以链式存储,也可以顺序存储。
那么链式存储方式就用指针, 顺序存储的方式就是用数组。

链式存储在这里插入图片描述

顺序存储

在这里插入图片描述
如果父节点的数组下标是 i,那么它的左孩子就是 i * 2 + 1,右孩子就是 i * 2 + 2。

二叉树的遍历方式

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

  1. 深度优先遍历:先往深走,遇到叶子节点再往回走。
  2. 广度优先遍历:一层一层的去遍历。

前中后,其实指的就是中间节点的遍历顺序
深度优先遍历
前序遍历(递归法,迭代法)
中序遍历(递归法,迭代法)
后序遍历(递归法,迭代法)
在这里插入图片描述

广度优先遍历
层次遍历(迭代法)

作者声明

如有问题,欢迎指正!
http://www.lryc.cn/news/164403.html

相关文章:

  • 【linux命令讲解大全】103.Linux目录堆栈命令 dirs 的使用方法和选项详解
  • vue3项目应用font awesome6
  • 【JavaScript】JS语法入门到实战
  • 【Linux】工具Gdb调试轻度使用(C++)
  • linux xhost命令
  • linux在线源码阅读网站
  • css中只使用vue的变量
  • 华为云云耀云服务器L实例评测 | 由于自己原因导致MySQL数据库被攻击 【更新中。。。】
  • 如何查询成绩或工资
  • FPGA原理与结构——时钟IP核的使用与测试
  • 手搓消息队列【RabbitMQ版】
  • Oracle VM VirtualBox 安装 Ubuntu Linux
  • 3D WEB轻量化引擎HOOPS Commuicator技术概览(一):数据导入与加载
  • .net 7 隐藏swagger的api
  • Maven插件的作用
  • C++(三)——运算符重载
  • 【Springcloud】elk分布式日志
  • 华为mate60麒麟9000s的架构体系
  • 面试半个月后的一些想法
  • 基于FPGA的图像二值化处理,包括tb测试文件和MATLAB辅助验证
  • 文件操作(个人学习笔记黑马学习)
  • Android Studio新版本New UI及相关设置丨遥遥领先版
  • 新型人工智能技术让机器人的识别能力大幅提升
  • 聚观早报|蚂蚁集团发布“蚁天鉴”;vivo X100系列即将亮相
  • 读高性能MySQL(第4版)笔记05_优化服务器设置
  • Spring Boot跨域问题简介
  • 【Java】过滤器和拦截器区别
  • es滚动查询分析和使用步骤
  • 飞书公式总结
  • vue3.2 导出pdf文件或表格数据