树和二叉树

 

4.1树的概念

树的递归定义如下:(1)至少有一个结点(称为根)(2)其它是互不相交的子树

    1.树的度——也即是宽度,简单地说,就是结点的分支数。以组成该树各结点中最大的度作为该树的度,如上图的树,其度为3;树中度为零的结点称为叶结点或终端结点。树中度不为零的结点称为分枝结点或非终端结点。除根结点外的分枝结点统称为内部结点。
  2.树的深度——组成该树各结点的最大层次,如上图,其深度为4;
  3.森林——指若干棵互不相交的树的集合,如上图,去掉根结点A,其原来的二棵子树T1、T2、T3的集合{T1,T2,T3}就为森林;
  4.有序树——指树中同层结点从左到右有次序排列,它们之间的次序不能互换,这样的树称为有序树,否则称为无序树。
    5.树的表示
  树的表示方法有许多,常用的方法是用括号:先将根结点放入一对圆括号中,然后把它的子树由左至右的顺序放入括号中,而对子树也采用同样的方法处理;同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。如上图可写成如下形式:
    (A(B(E(K,L),F),C(G),D(H(M),I,J)))
4.2 二叉树
 1.二叉树的基本形态:
  二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:
     
  (1)空二叉树——(a);
  (2)只有一个根结点的二叉树——(b);
  (3)右子树为空的二叉树——(c);
  (4)左子树为空的二叉树——(d);
  (5)完全二叉树——(e)
注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。  

2.两个重要的概念:
  (1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;
  (2)满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,。
  如下图:

完全二叉树

 满二叉树 

3.二叉树的性质
  性质1 二叉树的第i层上至多有2i-1个结点(i>=1)

性质2 深度为h的二叉树至多有2h-1个结点,最少有h个结点;
  性质3 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;

推论:如果一棵m度树中有n1个度为1的结点,n2个度为2的结点,…….有nm个度为m的结点,则该树中叶结点的的个数=______________.

分析:令N为总结点数,B为树枝总数,点则有:N=B+1,因为N= n0+n1+n2+……+nm

B= n1+2n2+……+mnm,所以叶结n0=n2+2n3+……+(m-1)nm+1.

性质4 具有n个(n>0)结点的完全二叉树的深度为[log2(n+1)]或[log2n]+1。

   (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,则无右儿子。
4.二叉树的遍历运算(递归定义)
   (1)先序遍历
      访问根;按先序遍历左子树;按先序遍历右子树
   (2)中序遍历
      按中序遍历左子树;访问根;按中序遍历右子树
   (3)后序遍历
      按后序遍历左子树;按后序遍历右子树;访问根

*规律:不同形态的二叉树数目恰好是前序序列均为1,2,3,…,n的二叉树所能得到的中序序列的数目,即是1/(n+1)C2nn

例如:按中序遍历二叉树所得的结果序列为ABC,试给出所有可能得到这一遍历的二叉树。

分析:n=3, 则1/(n+1)C 2n n=1/(3+1)C 6 3=5种。
 

4.3 二叉树的应用
哈夫曼树与哈夫曼码

树的路径长度:一棵树的每一个叶结点到根结点的路径长度的和。

带权二叉树:给树叶结点赋上某个实数值(称叶结点的权)。

带权路径长度:各叶结点的路径长度与其权值的积的总和。

哈夫曼树(最优二叉树):带权路径长度最小的二叉树。

如何构建哈夫树:(思想是:权越大离跟越近)

 

 

转自:http://ahoier.blog.sohu.com/115315033.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值