对树和二叉树的简单了解

99 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

在进行树和二叉树的学习前,首先要了解为什么引入树和二叉树的概念,因为二叉树结合了有序数组,链表这两者的优点。在树中查找数据的速度和有序数组中查找一样快。并且插入数据和删除数据的速度和链表一样。

一、树的定义

树是n(n>=0)个节点的有限集。当n=0时,称为空树。
m(m>=0)棵互不相交的树组成的集合,称为森林。

对于树的基本术语:

(1)节点的度:子树的个数
(2)树的度:所有节点度中的最大值
(3)叶子节点:度为0的节点
(4)非叶子节点:度不是0的节点
(5)节点的深度(depth):从根节点到当前节点的唯一路径上的节点总数(如下图,2的深度是2,31的深度是3) (6)节点的高度(height):从当前节点到最远的叶子节点的路径上的节点总数(2的高度是3)
(7)树的深度:所有节点深度中的最大值
(8)树的高度:所有节点高度中的最大值
(9)树的深度=树的高度

image.png

二、二叉树

对二叉树的定义:

每个节点的度最大是2(最多拥有2棵子树)
左子树和右子树是有顺序的,即使某节点只有一颗子树,也要区分左右子树

二叉树的三条性质如下图所示:

image.png

在二叉树的基础上,又有两个特殊的二叉树,完全二叉树和满二叉树。

完全二叉树的定义:当二叉树的深度为h时,它的h层节点必须都是连续靠左并不可隔开的(满二叉树也符合),并且1~h-1层的结点数都达到最大个数(即1~h-1层为一个满二叉树)。

如图所示:

image.png

满二叉树的定义:指深度为k且有2^k-1个结点的二叉树。

如图所示:

image.png

以上就是关于树和二叉树的简单介绍,以及对树和二叉树的学习。