一、树的一些概念:
1、结点的度与树的度:
- 结点的度:结点拥有的子树的数目(度为0的结点称为叶子结点)
- 树的度:树内各结点的度的最大值
2、结点的层次(level)和树的深度(depth)
- 结点的层次:从根开始定义,层次数为1的结点是根结点。
- 树的深度:树中结点的最大层次数称为树的深度或高度
3、有序树、m叉树,森林
- 有序树:树中结点的各子树看成是从左至右有次序的。
- m叉树:树中所有结点最大度数为m的有序数称为m叉树
- 森林:
二、二叉树
1、概念
- 二叉树:
每个结点的度均不超过2的有序树
- 满二叉树
高度为k并且有2k+1 -1个结点的二叉树
在满二叉树中,每层结点都达到最大数 - 完全二叉树
若在一棵满二叉树中,在最下层从最右侧起去掉相邻的若干叶子结点,得到的二叉树即为完全二叉树
2、二叉树的存储结构
- 顺序存储结构
这种存储方式对于满二叉树和完全二叉树是非常适合也是高效方便的。
但是日常中更常出现的是一般二叉树,对于一般二叉树,必须用“虚结点”将一棵二叉树不成一棵完全二叉树,否则无法确定结点之间的前驱后续关系,但是这样会造成空间浪费,例如:
- 链式存储结构