一、树
这三个概念的定义比较容易混淆,描述起来也比较空洞。我举个例子说明一下,你一看应该就能明白。
在我们的生活中,“高度”这个概念,其实就是从下往上度量,比如我们要度量第 10 层楼的高度、第 13 层楼的高度,起点都是地面。所以,树这种数据结构的高度也是一样,从最底层开始计数,并且计数的起点是 0。“深度”这个概念在生活中是从上往下度量的,比如水中鱼的深度,是从水平面开始度量的。所以,树这种数据结构的深度也是类似的,从根结点开始度量,并且计数起点也是 0。“层数”跟深度的计算类似,不过,计数起点是 1,也就是说根节点位于第 1 层。
一、二叉树
二叉树是树的一种特殊形式。二叉,顾名思义,这种树的每个节点最多有2个孩子节点。这里是最多有2个,也可能只有1个或者没有孩子节点。二叉树还有两种特殊形式,一个叫做满二叉树。 另一个叫做完全二叉树。
二、满二叉树
一个二叉树的左右非叶子节点都存在左右孩子,并且所有叶子节点都在同一层级上,那么这个树就是满二叉树。
如图2就是满二叉树。简单来说,满二叉树的每一个分支都是满的。
三、完全二叉树
四、存储
数据结构分为物理结构和逻辑结构。二叉树属于逻辑结构,它可以通过多种物理结构来表达。
1、链式存储结构