二叉树

来源:互联网 发布:linux du显示行号 编辑:程序博客网 时间:2024/06/15 21:53
二叉树:二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。
类型:
(1)完全二叉树——除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点
(2)满二叉树——除了叶子结点外每一个结点都有左右子树且叶子结点都处在最底层的二叉树。

(3)平衡二叉树——它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

性质:

(1) 在非空二叉树中,第i层至多有
 
个节点;
(2) 深度为h的二叉树最多有
  
个结点,最少有h个结点;
(3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
(4) 具有n个结点的完全二叉树的深度为
 
(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:
     若I为结点编号,如果I>1,则其父结点的编号为I/2;
     如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;
     如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。
(6)给定N个节点,能构成h(N)种不同的二叉树。
h(N)为卡特兰数的第N项。h(n)=C(2*n,n)/(n+1)。
(7)设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i
遍历:
1、前序遍历:先访问根节点------左子树------右子树
2、中序遍历:先访问左子树---根节点--右子树
3、后序遍历:先访问树的左子树---右子树---根节点
4、按层遍历:把一棵树从上到下,从左到右依次写出来


相关笔试题目:http://blog.csdn.net/luckyxiaoqiang/article/details/7518888

0 0
原创粉丝点击