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

39-算法打卡-二叉树-基础知识-第三十九天

1 二叉树基础知识分类

2 二叉树种类

2.1 满二叉树

如果一颗二叉树只有度为0的节点和度为2的结点,并且度为0的结点在同一层上,这棵二叉树就称之为满二叉树。

2.2 完全二叉树

完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。
优先级队列:其实就是一个堆,堆就是一颗完全二叉树,同时保证了父子节点的顺序关系。

2.3 二叉搜索树 

二叉搜索树是有数值的,二叉搜索树是一个有序树。
1、若它的左子树不为空,则左子树上所有结点的值均小于它的根节点的值
2、若它的右子树不为空,则右子树上所有结点的值均大于它的根节点的值
3、它的左右子树分别为二叉排序树

2.4 平衡搜索树 

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

 

3 存储方式

3.1 链式存储

链式存储就是使用指针的方式存储,链式存储是通过指针把分布在各个地址的节点串联起来

 3.2 顺序存储

顺序存储是使用数组的方式存储,顺序存储的元素内存是连续分布的。
其实就将树按层序遍历,存储到数组中。

 4 遍历

二叉树主要有两种遍历方式:
深度优先:先往深处走,遇到叶子节点再往回走
广度优先:一层一层的去遍历。
深度优先一般使用递归、迭代法遍历,广度优先基本上是使用迭代法遍历
注:栈其实就是递归的一种实现结构,前中后序遍历的逻辑其实都是可以借助栈实现递归的方式来实现的;
广度优先遍历实现一般使用队列方式实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结构,才能一层一层的来遍历二叉树。

4.1 深度优先

前序遍历:中左右
中序遍历:左中右
后序遍历:左右中
总结:前、中、后其实指的是中间节点的遍历顺序

 4.2 广度优先

层序遍历:一层一层的遍历完

 5 总结

二叉树是一种基础的数据结构,需要重点掌握,是算法面试中的常客,也是众多数据结构的基础。

相关文章:

  • 从零开始的python学习(六)P86+P87+P88
  • 有关SOA和SpringCloud的区别
  • MySQL 8.0 OCP 英文题库解析(二)
  • C++ stl中的stack和queue的相关函数用法
  • 23盘古石决赛
  • 前端自学入门:HTML 基础详解与学习路线指引
  • 安装jdk步骤
  • GOC指令
  • [javascript]取消异步请求
  • Linux——MySQL基础
  • SQL进阶:如何把字段中的键值对转为JSON格式?
  • C++进阶--红黑树的实现
  • 报错 <pcl/features/feature_evaluation/feature_evaluation_framework.h> 不存在的解决办法
  • 深入了解 Stable Diffusion:AI 图像生成的奥秘
  • Linux系统入门第十一章 --Shell编程之函数与数组
  • 影刀RPA开发-智能录制
  • Vulfocus靶场-文件上传-2
  • 提升编程效率的利器:Zed高性能多人协作代码编辑器
  • PCA降维
  • 操作系统导论——第27章 插叙:线程API
  • 4月证券私募产品备案量创23个月新高,股票策略占比超六成
  • 冯德莱恩:欧美贸易谈判前不会前往美国会见特朗普
  • 美众议院通过法案将“墨西哥湾”更名为“美国湾”
  • 美联储主席:不打算先发制人地降息,将继续观望
  • 国家矿山安全监察局发布《煤矿瓦斯防治能力评估办法》
  • 中年人多活动有助预防阿尔茨海默病