数据结构 二叉树 基础

数据结构 二叉树

一、基本概念

每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。

性质:
  1. 非空二叉树的第 i 层上至多有 2i12^{i-1} 个元素。

  2. 深度为 k 的二叉树至多有 2k12^k-1 个结点 (k>=1)。

  3. 对任何一棵二叉树 T ,如果其终端结点数为 n0n_0 ,度为 2 的结点数为 n2n_2 ,则 n0=n2+1n_0=n2+1

满二叉树:所有终端都在同一层次,且非终端结点的度数为2。

在满二叉树中若其深度为 k,则其所包含的结点数必为 2k12^k-1

完全二叉树:除了最大的层次即成为一颗满二叉树且层次最大那层所有的结点均向左靠齐,即集中在左面的位置上,不能有空位置。
  1. 具有 n 个节点的完全二叉树的深度为 log2n+1\lfloor \log _2 n \rfloor+1 (x\lfloor x \rfloor 表示不大于x的最大整数)。
  2. 如果对一棵有 n 个节点的完全二叉树 (其深度为**log2n+1\lfloor \log _2 n \rfloor+1**)的结点按层序编号(从第 1 层到第 log2n+1\lfloor \log _2 n \rfloor+1 层,每层从左到右),对任一结点 i (1 <= i <= n)

有:

  1. 如果 i = 1 ,则结点 i 是二叉树的根,无双亲;如果 i > 1 ,则其双亲是结点 i/2\lfloor i/2 \rfloor
  2. 如果 2i > n,则结点 i 无左孩子 (结点 i 为叶子结点);否则其左孩子是节点 2i
  3. 如果 2i + 1 > n ,则结点 i 无右孩子;否则其右孩子是结点 2i + 1

数据结构 二叉树 基础

二、二叉树遍历的方法

数据结构 二叉树 基础

数据结构 二叉树 基础
数据结构 二叉树 基础

前序遍历第一个值为

中序遍历 左侧为根的左子树 右侧为根的右子树

后序遍历最后一个值为

已知前序遍历序列和中序遍历序列,可以唯一确定一课二叉树

已知后序遍历序列和中序遍历序列,可以唯一确定一课二叉树


大话数据结构 这本书真的很棒,强烈推荐