数据结构——左高树
一、扩充二叉树
考察一棵二叉树,它有一类特殊的节点叫做外部节点( external node),用来代替树中的空子树,其余节点叫做内部节点( internal node)。增加了外部节点的二叉树被称为扩充二叉树(extended binary tree),图9-6a 给出了一棵二叉树,其相应的扩充二叉树如图9-6b 所示,外部节点用阴影框表示,为了方便起见,这些节点用a~f标注。
令s (x) 为从节点x 到它的子树的外部节点的所有路径中最短的一条,根据s(x)的定义可知,若x 是外部节点,则s的值为0,若x 为内部节点,则它的s 值是:m i n {s (L ), s (R) } + 1其中L与R分别为x 的左右孩子。扩充二叉树(如图9 - 6 b所示)各节点的s 值如图9-6c 所示。

定理9-1 令x 为一个H B LT的内部节点,则
1) 以x 为根的子树的节点数目至少为2^s (x)-1。
2) 若子树x 有m 个节点,s (x) 最多为log2 (m+ 1 )。
3) 通过最右路径(即,此路径是从x 开始沿右孩子移动)从x 到达外部节点的路径长度为s (x)。
定义:
[最大HBLT] 即同时又是最大树的HBLT;
[最小HBLT ] 即同时又是最小树的HBLT。

定义x的重量w(x) 为以x 为根的子树的内部节点数目。注意到若x 是外部节点,则其重量为0;若x为内部节点,其重量为其孩子节点的重量之和加1,图9-6a 中二叉树各节点的重量如图9-6 d所示。
定义[重量优先左高树] 当且仅当一棵二叉树的任何一个内部节点,其左孩子的w 值大于等于右孩子的w 值时,该二叉树为重量优先左高树(weight-biased leftist tree, WBLT);[最大(小)W B LT ] 即同时又是最大(小)树的W B LT。
数据结构——左高树的更多相关文章
- 数据结构(左偏树,可并堆):BNUOJ 3943 Safe Travel
Safe Travel Time Limit: 3000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class ...
- Go 数据结构--二分查找树
Go 数据结构--二分查找树 今天开始一个Go实现常见数据结构的系列吧.有时间会更新其他数据结构. 一些概念 二叉树:二叉树是每个节点最多有两个子树的树结构. 完全二叉树:若设二叉树的高度为h,除第 ...
- 【经典数据结构】B树与B+树
本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 维基百科对B树的定义为“在计算机科学中,B树 ...
- Linux 内核中的数据结构:基数树(radix tree)
转自:https://www.cnblogs.com/wuchanming/p/3824990.html 基数(radix)树 Linux基数树(radix tree)是将指针与long整数键值相 ...
- 数据结构---平衡查找树之B树和B+树(转)
本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 前面讲解了平衡查找树中的2-3树以及其实现红 ...
- 【经典数据结构】B树与B+树(转)
本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 维基百科对B树的定义为“在计算机科学中,B树 ...
- 【经典数据结构】B树与B+树的解释
本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 前面讲解了平衡查找树中的2-3树以及其实现红 ...
- D&F学数据结构系列——B树(B-树和B+树)介绍
B树 定义:一棵B树T是具有如下性质的有根树: 1)每个节点X有以下域: a)n[x],当前存储在X节点中的关键字数, b)n[x]个关键字本身,以非降序存放,因此key1[x]<=key2[x ...
- 大话数据结构—平衡二叉树(AVL树)
平衡二叉树(Self-Balancing Binary Search Tree/Height-Balanced Binary Search Tree),是一种二叉排序树,当中每个节点的左子树和右子树的 ...
随机推荐
- hdu 1215 七夕节
Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" ...
- git的安装已经连github
https://help.github.com/articles/generating-ssh-keys 1.安装git [plain] view plain copy sudo apt-get ...
- JavaScript 语法陷阱
没有一门编程语言是完美的,JavaScript 也不例外,它语法陷阱重重,防不胜防: 加号 "with" 分号自动插入 声明提升 "eval" 多行字符串 变量 ...
- php+mssql 已经写好的万能函数
<?php /****************************************************************************************** ...
- 用RBG颜色设置自定义颜色
这个是Mac自带的测色计 快捷键shift + command + c即可复制RBG格式的颜色 #DD0000 这个是csdn 的logo里的红色 我们得到的是十六位颜色代码 但是UIColor( ...
- #include<iostream>与#include<iostream.h>的区别
转载于祝长洋的BLOG:http://blog.sina.com.cn/s/blog_514b5f600100ayks.h ...
- 将图片以Blob格式存入数据库,再通过Servlet显示到界面
1:为了方便测试,直接将1.png图片存入到数据库中. public static void storePicBlog() throws FileNotFoundException, SQLExcep ...
- hex格式介绍及转bin格式的源程序
Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量.Intel HEX文件经常被用于将程序或数据传输存储到 ...
- HttpStatusCode 枚举
.NET Framework 类库 HttpStatusCode 枚举 包含为 HTTP 定义的状态代码的值. 命名空间:System.Net程序集:System(在 system.dll 中) ...
- Android自定义日历,可以点击、标注日期、节气、旧历等
1. [图片] 9A59974C-47D4-47E3-8136-3F873EB9BBDC.jpg 2. [图片] left_arrow_pre.png 3. [图片] left_arrow.png 4 ...