计算机二级二叉树算法
1、二叉树的概念
二叉树是一种特殊的树形结构,每个结点最多只有两棵子树,且有左右之分不能互换,因此,二叉树有五种不同的形态。
2、二叉树的性质
性质1 在二叉树的第k层上,最多有2^(k-1)(k≥1)个结点。
性质2 深度为m的二叉树最多有2^m-1个结点。
性质3 在任意一棵二叉树中,度为0的结点(叶子结点)总是比度为2的结点多一个。
性质4 具有n个结点的二叉树,其深度不小于[log2n]+1,其中[log2n]表示为log2n的整数部分。
3、满二叉树与完全二叉树
(1)满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。
(2)完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
(3)满二叉树是完全二叉树,而完全二叉树一般不是满二叉树。
4、完全二叉树的性质
性质1 具有n个结点的完全二叉树的深度为[log2n]+1。
性质2 完全二叉树中度为1的结点数为0或1。
5、二叉树的遍历
1、前序遍历:先访问根结点、然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
2、中序遍历:先遍历左子树、然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
3、后序遍历:先遍历左子树、然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。