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

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

  • 节点的左子树只包含 小于 当前节点的数
  • 节点的右子树只包含 大于 当前节点的数
  • 所有左子树和右子树自身必须也是二叉搜索树。
相关推荐
程序定小飞4 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
百锦再4 小时前
第1章 Rust语言概述
java·开发语言·人工智能·python·rust·go·1024程序员节
武昌库里写JAVA4 小时前
element-ui 2.x 及 vxe-table 2.x 使用 css 定制主题
java·vue.js·spring boot·sql·学习
Victory_orsh4 小时前
“自然搞懂”深度学习(基于Pytorch架构)——010203
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
CoovallyAIHub4 小时前
突破360°跟踪极限!OmniTrack++:全景MOT新范式,HOTA指标狂飙43%
深度学习·算法·计算机视觉
JavaGuide4 小时前
OPPO 后端校招面试,过于简单了!
java·后端
码割机4 小时前
Linux服务器安装jdk和maven详解
java·linux·maven
得物技术5 小时前
得物管理类目配置线上化:从业务痛点到技术实现
后端·算法·数据分析
星释5 小时前
Rust 练习册 8:链表实现与所有权管理
开发语言·链表·rust
青木川崎5 小时前
linux面试题
java·linux·运维