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

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

  • 节点的左子树只包含 小于 当前节点的数
  • 节点的右子树只包含 大于 当前节点的数
  • 所有左子树和右子树自身必须也是二叉搜索树。
相关推荐
Zane19942 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了3 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品3 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘3 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts
Java内核笔记4 小时前
告别十亿美元的错误 : Spring Boot 4 空安全 (JSpecify) 实战
java·spring boot·后端
烬羽4 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
糖果店的幽灵4 小时前
langgraph的 MessagesState 解读
java·开发语言·人工智能·windows·langgraph
闪电悠米4 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
WL学习笔记5 小时前
堆(数据结构)
数据结构·
星空露珠5 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua