数据结构与算法-04二叉树-01

初识二叉树(Binary)

树结构

树是由 n(n≥0)个结点组成的有限集合。当 n = 0 时,称为空树;当 n > 0 时,有一个特殊的节点称为根结点(root),它没有前驱结点;其它结点分为 m 棵互不相交的子树。

什么是二叉树?

二叉树是一种最典型的非线性结构,除叶节点外每个节点最多连接两个子节点。

二叉树的几种形态

空二叉树、父节点、左节点、右节点、左右节点。

树的常用术语

节点度

一个结点拥有子树的个数称为该结点的度

节点A的度: 2

树的度

一棵树中,最大的结点度称为树的度;

树的度为最大节点的度(B): 3

节点的层次

从根开始算起,根为第 1 层,根的子节点为第 2 层,以此类推

树的高度/深度

树中结点的最大层次数;如上图所示,由于结点最大层次树为 3,所以树的深度或高度为 3;

根节点(root)

顶层节点或者说没有父节点的节点。

叶节点

父、子、兄弟节点

父节点

若一个结点含有孩子结点,则这个结点称为其孩子结点的父结点.

子节点

一个结点含有的子树的根结点称为该结点的孩子结点。

兄弟节点

具有相同父结点的结点互称为兄弟结点。

二叉树的几种形态

满二叉树

所有节点的要么为0,要么为2,且所有的叶子节点都在最后一层。

完全二叉树

完全二叉树是由满二叉树而引出来的,若设二叉树的深度为h ,除第 h 层外**,其它各层 (1~h-1)** 的结点数都达到最大个数(即1~h-1层为一个满二叉树)`,++第 h 层所有的结点都连续集中在最左边++ ,这就是完全二叉树

平衡二叉树

一棵平衡二叉树必须要满足如下条件:

  • 每个节点左右两个子树的高度差不超过1
  • 每个左子树和右子树自身必须也是平衡二叉树

二叉搜索树(BST)

一个二叉搜索树要满足如下条件:

  • 节点的左子树只包含 小于 当前节点的数
  • 节点的右子树只包含 大于 当前节点的数
  • 所有左子树和右子树自身必须也是二叉搜索树。
相关推荐
夏乌_Wx1 分钟前
练题100天——DAY31:相对名次+数组拆分+重塑矩阵
数据结构·算法
LYFlied2 分钟前
【算法解题模板】-解二叉树相关算法题的技巧
前端·数据结构·算法·leetcode
shoubepatien4 分钟前
JAVA -- 07
java·后端·intellij-idea
Gu_yyqx7 分钟前
Maven进阶
java·maven
小肖爱笑不爱笑9 分钟前
JavaScript
java·javascript·json·web
专注于大数据技术栈9 分钟前
java学习--String和StringBuffer互转
java·学习
Ven%26 分钟前
【AI大模型算法工程师面试题解析与技术思考】
人工智能·python·算法
天勤量化大唯粉27 分钟前
枢轴点反转策略在铜期货中的量化应用指南(附天勤量化代码)
ide·python·算法·机器学习·github·开源软件·程序员创富
waper9729 分钟前
nohup java -jar启动jar包错报错 地址已在使用
java·开发语言·jar
無量37 分钟前
ConcurrentHashMap实现原理
java·后端