摘要:这篇文章主要对排序二叉树和平衡二叉树的基础知识进行简要的说明,关于二叉树的详细笔记将在数据结构的学习中进行记录,这里只进行基础知识的了解。
1.排序二叉树 排序二叉树是二叉树的一种特殊存在方式,如果我们用排序二叉树保存数据,就可以迅速的进行一个数值的检索。同时排序二叉树可以理解成一个有序数组进行二分搜索的生成树。
排序二叉树的定义是递归定义的,下面是排序二叉树的定义:
树种某一节点的左子树如果不为空,那么这个节点的左子树上边所有的值均要小于这个节点上的值;某一节点的右子树如果不为空,那么这个节点右子树上边所有的值都要大于这个节点。并且这个节点的左右节点都必须是二叉排序树。
简而言之,就是一个节点的左孩子必须小于这个节点的值,右孩子必须大于这个节点的值,此规则对于每一个有孩子节点的节点生效。其余方面没有限制。
关于排序二叉树的更加详细的学习将在以后的数据结构的学习中进行,这里仅解释排序二叉树的基本定义。
2.平衡二叉树 平衡二叉树和排序二叉树不是同一个概念,二者的性质是可以在一棵树上并存的,简而言之就是一棵树既可以是排序二叉树也可以是平衡二叉树。平衡二叉树实际上就是针对排序二叉树进行搜索行为时的一个优化。
平衡二叉树可以只有一个根节点,也可以是一个空树。然而一个平衡二叉树中,一旦根节点拥有孩子节点,即拥有子树,那么它的左右子树的深度之差一定不能超过1,并且这个根节点的左右子树也一定是平衡二叉树。
简而言之,在一个平衡二叉树中,任一拥有左右子树的节点的左右子树深度之差都不能超过1,这是递归定义的。从一棵树的最下边一层的非叶子节点开始,它们的左右子树深度之差均不能超过1,否则将需要进行调整。
这里同样只进行平衡二叉树的简要概念讲解,在之后数据结构的学习中这里会做更加详细的分析。