数据结构与算法-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)

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

  • 节点的左子树只包含 小于 当前节点的数
  • 节点的右子树只包含 大于 当前节点的数
  • 所有左子树和右子树自身必须也是二叉搜索树。
相关推荐
AI小老六2 小时前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程
胡萝卜术3 小时前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
亦暖筑序3 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
Asize3 小时前
初识DFS 与 BFS:递归、队列与图遍历
算法
敲代码的彭于晏4 小时前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev5 小时前
ButterKnife → ViewBinding
android·java·kotlin
罗西的思考17 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
CSharp精选营19 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队20 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
像我这样帅的人丶你还21 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端