二叉树概述

简介: 二叉树概述

一、 什么是二叉树


二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点 。

来源:百度百科_二叉树

简单来说,二叉树就是每个结点最多有两个子树的树形结构,只要满足两个性质就可以称为二叉树:

  1. 本身是一棵有序的树
  2. 树中包含的各个结点的度不能超过2,只能是0、1或者2


image.png

二、 二叉树的性质


  1. 根节点的层数为1,一棵非空二叉树的第 i 层最多有2i-1 个结点
  2. 根节点的层数为1,一棵深度为 k 的二叉树最大结点个数为2k-1个
  1. 对于任意一棵二叉树,如果其叶子结点个数为n0,度数为2的结点个数为n2,则一定满足 n0 = n2 + 1

三、二叉树的形态


  1. 空二叉树
  2. 仅有一个根节点
  3. 仅有左子树
  4. 仅有右子树
  5. 既有左子树也有右子树

四、两种特殊的二叉树


二叉树再进行划分有两种特殊的二叉树

1. 满二叉树


满二叉树是一棵深度为 k 并且有 2k-1 个结点的二叉树,既除叶子结点外每一个结点都有两个子结点的二叉树

image.png

2. 完全二叉树


完全二叉树是深度为 k ,有n个结点的二叉树当且仅当其每个结点都与深度为 k 的满二叉树中编号从 1 到 n 的结点一 一对应

image.png

在完全二叉树中,叶子结点只能在层次最大的两层上出现,最后一层的叶子结点一次排列在该层最左边的位置

相关文章
|
7月前
|
存储 算法
二叉树基本操作实现 && 树和二叉树&& 二叉树进阶oj && 堆的基本概念 && 优先级队列的使用_
二叉树基本操作实现 && 树和二叉树&& 二叉树进阶oj && 堆的基本概念 && 优先级队列的使用_
54 0
|
4天前
|
存储
二叉树的基本概念以及基本操作
二叉树的基本概念以及基本操作
15 2
|
9月前
|
存储 算法
树和二叉树基础概念
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
构建二叉搜索树及基本操作
构建二叉搜索树及基本操作
|
9月前
|
C++
构建二叉树
构建二叉树
43 0
构建二叉树
|
存储
树和二叉树的基本概念
1.树的概念: a.树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。 b.把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 c.有一个特殊的结点,称为根结点,根节点没有前驱结点 除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集 合Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以 有0个或多个后继 因此,树是递归定义的。 .
70 0
树和二叉树的基本概念
|
算法 数据库管理
【如何唯一确定一棵二叉树】思想分析及步骤详解
【如何唯一确定一棵二叉树】思想分析及步骤详解
242 0
【如何唯一确定一棵二叉树】思想分析及步骤详解
|
算法 Java
根据二叉树已知的节点信息,构建二叉树的算法
根据二叉树已知的节点信息,构建二叉树的算法
|
存储 Java 索引
【笔记13】二叉搜索树的概念
二叉搜索树的Java实现
72 0
【笔记13】二叉搜索树的概念