二叉树
二叉树的性质∶
①、二叉树第i(i≥1)层上的节点最多为2i-1个。
②深度为k(k≥1)的二叉树最多有2k-1个节点。
③在任意一棵二叉树中,树叶的数目比度数为2的节点的数目多一。
④总节点数为各类节点之和∶n=no+n1+n2 总节点数为所有子节点数加一∶n=n1+2*n2+1
故得no=n2+1
⑤满二叉树∶深度为k(k≥1)时有2k-1个节点的二叉树。完全二叉树只有最下面两层有度数小于2的节点,且最下面一层的叶节点集中在最左边的若干位置上。
⑥具有n个节点的完全二叉树的深度为
(10g2n) 十1或log2(n+1)。
遍历
先序遍历:ABCDEFGHK
中序遍历:BDCAEHGKF
后序遍历:DCBHKGFEA
这里有一个小技巧:先序遍历可以这样记-中左右。以此类推,中序遍历为左中右、后序遍历为左右中
void PREORDER ( bitree *r)
{
if ( r == NULL ) return ; //空树返回
printf ( “ %c ”,r->data ); //先访问当前结点
PREORDER( r->lchild ); //再访问该结点的左子树
PREORDER( r->rchild ); //最后访问右子树
}