二叉树概述

简介: 二叉树概述

一、 什么是二叉树


二叉树是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

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

相关文章
|
4月前
|
存储
二叉树的基本概念以及基本操作
二叉树的基本概念以及基本操作
41 2
|
3月前
|
算法
数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)
数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)
22 0
|
存储 算法
树和二叉树基础概念
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
|
存储
树和二叉树的基本概念和性质
树和二叉树的基本概念和性质
|
存储
树和二叉树的基本概念
1.树的概念: a.树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。 b.把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 c.有一个特殊的结点,称为根结点,根节点没有前驱结点 除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集 合Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以 有0个或多个后继 因此,树是递归定义的。 .
85 0
树和二叉树的基本概念
|
存储 算法
(Java)二叉树的相关OJ题(相同的树,另一颗树的子树,对称二叉树或镜像二叉树,根据二叉树创建字符串)(内附OJ链接)
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
(Java)二叉树的相关OJ题(相同的树,另一颗树的子树,对称二叉树或镜像二叉树,根据二叉树创建字符串)(内附OJ链接)
|
存储 算法 C++
【树和二叉树】—— 九道习题,难易结合,手把手掌握树的基本知识
【树和二叉树】—— 九道习题,难易结合,手把手掌握树的基本知识
103 0
【树和二叉树】—— 九道习题,难易结合,手把手掌握树的基本知识