二叉树的基本定义

树的定义

树是n个结点的有限集。当n = 0时称为空树,在任意一颗非空树种;

  • 有且仅有一个特定的称为根的结点
  • 当n > 1时,其余结点可分为m(m > 0) 个互不相交的有限集T1、T2、……、Tm,其中每一个集合本身又是一棵树,并且称为跟的子树。二叉树的基本定义_第1张图片

树结点的分类

结点拥有的子树称为度。度为0的结点称为叶结点或终端结点;度不为零的结点称为非终端结点或分支结点。除根节点外,分支结点也称为内部节点。树的度是树内树内各节点的度的最大值。

二叉树的基本定义_第2张图片

树与结点之间的关系

结点的子树的根称为该结点的孩子,相应的,该节点称孩子的双亲。同一个双亲的孩子之间相互称为兄弟。结点的祖先是从根到该结点所有分支上的所有结点。

二叉树的基本定义_第3张图片

 

树的层次

结点的层次从根结点开始定义起,根为第一层,根的孩子为第二层。若某结点在第i层。则其子树的根就在i+1层。其双亲在同一层的结点互为堂兄弟。树中结点的最大层称为树的深度或高度。

二叉树的基本定义_第4张图片

 二叉树的定义

二叉树是n(n >= 0)个结点的有限集合,该集合或空集(称为空二叉树),或者由一个根结点和两颗互不相交的、分别称为根节点的左子树和右子树的二叉树组成。

二叉树的基本定义_第5张图片

 二叉树的五种基本形态

(1)空二叉树

(2)只有一个根结点

二叉树的基本定义_第6张图片

(3)根结点只有左子树

二叉树的基本定义_第7张图片

 

(4)根结点只有右子树

二叉树的基本定义_第8张图片

 

(5)根结点既有左子树又有右子树                        

二叉树的基本定义_第9张图片

 

二叉树的特殊情况——斜树

所有结点都只有左子树的二叉树叫左斜树,所有结点都只有右子树的二叉树叫右斜树。所以在极端情况下二叉树会退化成为线性表(线性表是树的特殊表现形式),这种情况也称为非平衡树

二叉树的基本定义_第10张图片

 

二叉树的特殊情况——满二叉树

在一棵二叉树中,如果所有分支点都存在左子树和右子树,并且所有叶子都在同一层次上这样的二叉树称为满二叉树。满二叉树是一种平衡树。

二叉树的基本定义_第11张图片

 二叉树的特殊情况——完全二叉树

对一棵树具有n个结点的二叉树按层序编号,如果编号为i(1 <= i <=n)的结点与同样深度的满二叉树中编号为i额结点在二叉树中位置完全相同,则这颗二叉树称为完全二叉树。完全二叉树也是一种平衡树。

二叉树的基本定义_第12张图片

 二叉树的性质

  • 在二叉树的第i层上至多有2^{i-1}个结点(i >= 1)
  • 深度为k的二叉树至多有2^k-1个结点(k >= 1)
  • 对于任何一棵二叉树 ,如果终端结点数为n_{0},度为2的结点数为n_{2},则n_{0} = n_{2} + 1
  • 具有n个结点的完全二叉树的深度为[log_{2}n] + 1
  • 如果对于一棵有n个结点的完全二叉树的结点按照层序编号,如果i = 1,结点无双亲;如果i > 1,则双亲是[i/2];如果2i  > n,则结点i无左孩子;否则其左孩子为2i;如果2i + 1 > n,则结点i无右孩子;否则右孩子为2i + 1;
  • 二叉树的基本定义_第13张图片

 

二叉树的顺序存储结构

二叉树的顺序储存结构就是用一维数组存储二叉树中的结点,并且结点的储存位置,也就是数组的下标要能体现出之间的逻辑关系。

二叉树的基本定义_第14张图片

二叉树的链式储存结构

二叉树每一个结点最多有两个孩子,所以设计为一个数据域和两个指针域的结点进行链接,这种链表也叫作二叉链表

二叉树的基本定义_第15张图片

 

二叉树的遍历

主要分为两类:深度优先遍历DFS和广度优先遍历BFS

深度优先遍历:前序遍历、中序遍历、后序遍历

广度优先遍历:层序遍历

深度优先遍历:——前序遍历DLR

规则是若二叉树为空, 则空操作返回,否则先访问根结点,

然后前序遍历左子树,再前序遍历右子树

二叉树的基本定义_第16张图片

深度优先遍历——中序遍历LDR

规则是若是二叉树为空,则空操作返回,否则从根结点开始,中序遍历根结点的左子树,然后访问根结点,最后中序遍历右子树

 二叉树的基本定义_第17张图片

 深度优先遍历——后序遍历LRD

规则是若二叉树为空,则空操作返回,否则从根节点开始,后序遍历根结点的左子树,然后后序遍历右子树,最后访问根结点

二叉树的基本定义_第18张图片

  

广度优先遍历:层序遍历

规则是若树为空,则空操作返回,否则从树的第一层也就是根结点开始访问,从上面而下逐层遍历,再同一层中,按照从左到右的顺序对结点逐个访问

         二叉树的基本定义_第19张图片

 

你可能感兴趣的:(数据结构,算法,leetcode)