一、平衡二叉树(Balanced Binary Tree):
它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。如图:
二、二叉排序树(Binary Sort Tree): 又称二叉查找树
它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;如图:
三、二叉树的遍历:
所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问 题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。如图:
遍历方案
从二叉树的 递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:(1)访问结点本身(N),
(2)遍历该结点的左子树(L),
(3)遍历该结点的右子树(R)。
以上三种操作有六种执行次序: NLR、LNR、LRN、NRL、RNL、RLN。
注意: 前三种次序与后三种次序对称,故只讨论先左后右的前三种次序。
遍历算法(参考上图)
① NLR: 前序遍历(PreorderTraversal, 或称先序遍历, 或称先根遍历:ABCDEFGHIJ。若二叉树非空,则依次执行如下操作: (1)遍历左子树; (2)访问根结点; (3)遍历右子树。
② LNR:中序遍历(InorderTraversal),或称中根遍历:BCDAFEHJIG。
③ LRN:后序遍历(PostorderTraversal),或称后根遍历:DCBFJIHGEA.。