平衡树

平衡树

数据结构中的子树高度差
平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。常见的符合平衡树的有,B树(多路平衡搜索树)、AVL树(二叉平衡搜索树)等。平衡树可以完成集合的一系列操作, 时间复杂度和空间复杂度相对于“2-3树”要低,在完成集合的一系列操作中始终保持平衡,为大型数据库的组织、索引提供了一条新的途径。[1]设“2-3 树”的每个结点存放一组与应用问题有关的数据, 且有一个关键字 (>0的整数) 作为标识。关键字的存放规则如下:对于结点X, 设左、中、右子树均不空, 则左子树任一结点的关键字小于中子树中任一结点的关键字;中子树中任一结点的关键字小于结点X的关键字;而X的关键字又小于右子树中任一结点的关键字, 称这样的“2-3树”为平衡树。
  • 中文名:平衡树
  • 外文名:Balanced Binary Tree
  • 别名:
  • 定义:平衡二叉树
  • 构造:用算法有红黑树

简介

2-3树

“2-3树”是由Aho, Hopcroft和Ullman提出, 它是这样的树:在树中每个结点都有2个或3个子树, 而且从根到叶的每条路径都是等长的;由单个节点组成的树也是“2-3树”。如图《2-3树》所示, 是具有六片叶子的“2-3树”, 这里每个叶结点存放一个关键字值, 每一个非叶结点存放两个值, 这两个值分别是第一个 (最左) 子树中最大关键字值, 和该结点第二个 (中) 子树最大关键字值。非叶结点这两个值能从树的根出发, 用类似于二分搜索的方式来搜索树中某一元素。  

通过对“2-3树”的改造, 形成一种新的数据结构,即平衡树 (BT) 。BT解决了“2-3树”实现集合表示的存储空间利用率低问题。同时可以实现求集合的并、交、差、测集合包含关系操作。  

性质与基本算法

性质:高为h的BT, 其结点的数目在2^(h+1)-1和1/2(3^(h+1)−1)之间, 叶的数目在2^h和3^h之间。  

证明:BT退化为每个结点 (非叶) 只有两棵子树时, 结点的数目最少, 叶子也最少。设层号为i则各层结点数为2^(i-1)个, 那么高为h的BT最大层号是j时, 有h=j-1。整个树的结点数为s=2^0+2^1+2^2+…+2^h, 故s=2^(h+1)-1。其叶子的个数是2^h。同理, 当BT每个非叶结点都有三棵子数时, 结点数目最多。此时结点数为:  

s=3^0+3^1+3^2+⋯+3^h‚s=1/2(3^(h+1)−1),其叶子的个数是3^h。  

中根遍历算法:

中根遍历的结果是:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13。  

先根遍历算法:

先根遍历的结果是:9, 3, 1, 2, 4, 7, 5, 6, 8, 12, 10, 11, 13。  

后根遍历算法:

后根遍历的结果是:1, 2, 4, 3, 5, 6, 8, 7, 10, 11, 13, 12, 9。  

应用

在智能电网中,与传统路由协议不同,突发性拥塞不再是数据采集的主要风险,风险的新来源是数据流过度集中在网络的关键节点而导致的拥塞。为此,提出了一种能够实现数据平衡的数据采集路由机制用以克服网络拥塞。该机制抽象出配用通信网络的数学模型;其次,针对无线网状网络(WMNs)路由协议,以节点排队队列长度作为决策参数建立路由度量模型(数据平衡度量模型,DBMM),并以度量值最小作为决策条件,设计了基于平衡树的路由算法(基于DBMM的路由算法,RA-DBMM)。有效地改善数据拥塞问题,提高系统可靠性和吞吐量。  

相关词条

相关搜索

其它词条