1. 挑选一个合适的基本数据结构
2. 决定在基本数据结构上应增加的信息
3. 修改基本数据结构上的操作并维持原有的性能
4. 修改或设计新的操作
定理
1.具有n个内部结点的红黑树高度h最多为2lg(n+1) ,即h=O(lgn)
2.黑高度:黑高度bh(x)表示从x结点出发(不包含x结点)到其叶结点路径上的黑色
结点个数。
3.令f为具有n个结点的红黑树扩张后的一个域,如果结点x的f域值仅需通过结点
x、le[x]、right[x]以及f(le[x])、f(right[x])就可获得,那么插入和删除操作对树T
中所有结点f值进行维护将维持O(lgn)的性能
区间树的查找算法,要么返回与i重叠的某个结点,要么返回为空表示树T中未找
到与i重叠的区间。
二项堆
二项树
定义
仅包含一个结点的有序树是一棵二项树称为B0树。
二项树Bk由二棵Bk-1树组成
其中一棵Bk-1树的根作为另一棵Bk-1树根的最左孩子(k≥0)。
性质
1. 有2^k个结点 ,即n=2^k
2. 树的高度为k , 即k=lgn(注:二项树的高度从0开始计数)
3. 深度为i处恰好有 个结点 0≤i≤k
4. 根的度最大且为k,若根的孩子从左到右编号为k-1,k-2,…,1,0,则孩子i恰好
是子树Bi的根。
5. 一棵具有n个结点的二项树中,任一结点的最大度为lgn
二项堆
定义
二项堆H是一个满足下述条件的二项树的集合:
①H中的每棵二项树满足最小堆性质
②对任意的非负整数k,H中至多有一棵二项树根的度为k(保证每一棵二项
树度的唯一性)
根表的性质
评论0