码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树

时间:2016-01-28 18:46:01      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

参考文献:https://zh.wikipedia.org/wiki/%E4%BA%8C%E5%8F%89%E6%A0%91

1,N0=N2+1

N = N0 + N1 + N2;
N = E + 1;
E = N1*1 + N2*2;
->
N0 = N2 + 1;

2,满二叉树和完全二叉树

技术分享

 

  满二叉树 完全二叉树
       总节点数 k             2h-1 <= k < 2h-1             k = 2- 1                   
          树高 h       h = log2k + 1       h = log2(k + 1)

3,遍历

用二叉树表示下述表达式:a+b*(c-d)-e/f

技术分享

  • 先序遍历的序列是:-+a*b-cd/ef
  • 中序遍历的序列是:a+b*c-d-e/f
  • 后序遍历的序列是:abcd-*+ef/-

4,深度优先遍历

节点进行深度优先搜索的顺序:

利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。

技术分享

5,广度优先搜索

节点进行广度优先搜索的顺序:

技术分享

6,将n叉树转换为二叉树

技术分享

注:

  • 将一棵树转换为二叉树的方法:
  1. 在兄弟之间加一连接;
  2. 对每个结点,除了其左孩子外,去除其与其余孩子之间的联系;
  3. 以树的根结点为轴心,将整树顺时针转45度。

7,赫夫曼树

 

技术分享

7.1:路径长度:从树中一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的边的数目;

7.2:树的路径长度:就是从根结点每一结点的路径长度之和;

  例如:

  a = 1+1+2+2+3+3+4+4=20

  b = 1+2+3+3+2+1+2+2=16

7.3:节点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积;

7.4:树的带权路径长度:树中所有叶子节点的带权路径长度之和。其中带权路径长度WPL最小的二叉树称作赫夫曼树。

  例如: 

  二叉树a的WPL=5*1+15*2+40*3+30*4+10*4=315

  二叉树b的WPL=5*3+15*3+40*2+30*2+10*2=220

7.5:构造赫夫曼树:

 

技术分享

注:每一步考虑的权值为权值之和:例如N1=A+E=15

 

二叉树

标签:

原文地址:http://www.cnblogs.com/lemon-now/p/5166573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!