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

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

  • 节点的左子树只包含 小于 当前节点的数
  • 节点的右子树只包含 大于 当前节点的数
  • 所有左子树和右子树自身必须也是二叉搜索树。
相关推荐
颜酱2 分钟前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
不知名XL21 分钟前
day50 单调栈
数据结构·算法·leetcode
风生u22 分钟前
activiti7 详解
java
岁岁种桃花儿31 分钟前
SpringCloud从入门到上天:Nacos做微服务注册中心(二)
java·spring cloud·微服务
Word码34 分钟前
[C++语法] 继承 (用法详解)
java·jvm·c++
@––––––35 分钟前
力扣hot100—系列2-多维动态规划
算法·leetcode·动态规划
TT哇40 分钟前
【实习 】银行经理端两个核心功能的开发与修复(银行经理绑定逻辑修复和线下领取扫码功能开发)
java·vue.js
逝水如流年轻往返染尘43 分钟前
Java中的数组
java
xsyaaaan1 小时前
代码随想录Day31动态规划:1049最后一块石头的重量II_494目标和_474一和零
算法·动态规划
java1234_小锋1 小时前
Java高频面试题:BIO、NIO、AIO有什么区别?
java·面试·nio