树是一种用于表达层级结构的数据结构
树的定义
树
树结构是一种数据结构。它由结点以及连接结点的边构成,如图所示:
其中圆点表示结点,实线表示连接结点的边
黑色的结点我们称为根,是一棵树的起始点,如果一棵树有根,我们称之为“有根树”
树有以下几个概念:
父结点、子结点、兄弟结点:
如图中的结点1、2、3,它们具有共同的父结点,也就是结点0;而结点6、7、8,它们的父结点是结点2.相应地,我们也说结点6、7、8是结点2的子结点,而结点6、7、8相互称为兄弟节点(具有相同的父节点)
叶结点:没有子结点的结点,如结点4,结点11
内部结点:除叶结点以外的结点
度:结点x的子结点数。如结点2的度为3,叶结点的度为0
深度:从根结点到结点x的路径长度。如结点8的深度为2
高:结点x到叶结点的最大路径长度。如结点2的高为2,结点3的高为1,
树的高:即根节点的高,如图中树高为3
二叉树
如果一棵树拥有1个根节点,而且所有结点的子结点数都不大于2,则称之为有根二叉树
其中,我们将左边的子结点称为左子结点,右边的子结点称为右子结点
左子树:
以左子结点作为根的树称为左子树
右子树:
以右子结点作为根的树称为右子树
完全二叉树
两种情况:
1.所有叶结点深度相同,且所有内部结点都有两个子结点的二叉树称为完全二叉树(满二叉树)
2.二叉树的叶结点深度最大差距为1,最下层叶节点都集中在该层最左边的若干位置